[CPP61 - Test 2] Bài 5: Đối thủ cân sức - Đếm số cặp cân sức
Đối thủ cân sức - Đếm số cặp cân sức
Câu lạc bộ cờ vua có n kỳ thủ. Kỳ thủ thứ i có điểm xếp hạng Elo là a_i; các kỳ thủ có thể có Elo bằng nhau.
Hai kỳ thủ khác nhau i và j, với i < j, được gọi là cân sức nếu chênh lệch Elo của họ không vượt quá D, tức là |a_i - a_j| ≤ D.
Yêu cầu
Đếm số cặp kỳ thủ cân sức. Hai cặp được coi là khác nhau nếu tập hai chỉ số {i, j} khác nhau, kể cả khi Elo giống nhau.
Input
- Dòng đầu chứa hai số nguyên
nvàD. - Dòng thứ hai chứa
nsố nguyêna_1, a_2, ..., a_n.
Output
In một số nguyên là số cặp kỳ thủ cân sức. In 0 nếu không có cặp nào.
Ràng buộc
1 ≤ n ≤ 100000.0 ≤ D ≤ 10^9.1 ≤ a_i ≤ 10^9.
Nhóm test
- Test
01-04(40 điểm):n ≤ 2000. - Test
05-10(60 điểm): ràng buộc đầy đủ.
Ví dụ 1
Input
7 200
1500 1200 1800 1500 1350 2000 1650
Output
8
Ví dụ 2
Input
4 0
5 5 5 7
Output
3
Giải thích
Ở ví dụ 1, sau khi sắp xếp có dãy 1200, 1350, 1500, 1500, 1650, 1800, 2000. Các cặp Elo cân sức là (1200, 1350), hai cặp (1350, 1500), (1500, 1500), hai cặp (1500, 1650), (1650, 1800), (1800, 2000), tổng cộng 8 cặp. Ở ví dụ 2, chọn hai trong ba kỳ thủ có Elo 5 được 3 cặp.
Comments