Phép chia nguyên
Xem PDFĐể giúp các bạn trong lớp ôn lại kiến thức về phép chia lấy dư, thầy giáo của Alice đưa ra một bài toán như sau:
Cho một dãy số nguyên \(a_1, a_2, \dots, a_n\), với \(a_i \neq 0\). Với mỗi cặp \((i, j)\) (\(1 \le i, j \le n\)), tính giá trị \(\lfloor \frac{a_i}{a_j} \rfloor\), với \(\lfloor x \rfloor\) là số nguyên lớn nhất không vượt quá \(x\).
Tất nhiên, trong thời gian của tiết học, thầy giáo chỉ có thể đưa ra một dãy số với độ dài nhỏ để kiểm tra kiến thức các bạn. Alice muốn thử thách bản thân với những dãy số dài hơn. Để kiểm tra xem mình có tính đúng hay không, Alice muốn bạn tính tổng các giá trị \(\lfloor \frac{a_i}{a_j} \rfloor\) giúp Alice nhé.
Input
- Dòng đầu tiên gồm một số nguyên dương \(n\) (\(1 \le n \le 2 \cdot 10^5\)).
- Dòng tiếp theo gồm \(n\) số nguyên \(a_1, a_2, \dots, a_n\) (\(0 < |a_i| \le 3 \cdot 10^5\)).
Output
- Một dòng duy nhất là tổng các giá trị \(\lfloor \frac{a_i}{a_j} \rfloor\) tìm được.
Ràng buộc bổ sung
- 20% số điểm có \(n \le 2000\) và \(a_i > 0\).
- 20% số điểm khác có \(n \le 2000\).
- 20% số điểm khác có \(0 < a_i \le 2000\).
- 20% số điểm khác có \(|a_i| < 2000\).
- 10% số điểm khác có \(a_i > 0\).
- 10% số điểm còn lại không có giới hạn gì thêm.
Example
Test 1
Input
4
1 2 3 4
Output
17
Note
Dưới đây là bảng các giá trị \(\lfloor \frac{a_i}{a_j} \rfloor\):
| \(1\) | \(2\) | \(3\) | \(4\) | |
|---|---|---|---|---|
| \(1\) | \(1\) | \(2\) | \(3\) | \(4\) |
| \(2\) | \(0\) | \(1\) | \(1\) | \(2\) |
| \(3\) | \(0\) | \(0\) | \(1\) | \(1\) |
| \(4\) | \(0\) | \(0\) | \(0\) | \(1\) |
Tổng cần tìm là: \(1 + 2 + 3 + 4 + 1 + 1 + 2 + 1 + 1 + 1 = 17\).
Kỳ thi:
- Contest ôn thi HSG9 và giao lưu lớp 10 Chuyên (lần 2) (21 Tháng 11., 2025)
Bình luận