[HSG_DB_25] Đếm cặp
Xem dạng PDF
Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python
Nam rất thích dãy những con số, đặc biệt dãy số nguyên dương. Cậu tò mò muốn biết sau khi dãy đã sắp xếp tăng dần thì có bao nhiêu cặp chỉ số ~(i, j)~ với ~1 \le i < j \le N~ sao cho ~a[j] - a[i] \le K~.
Yêu cầu
Hãy giúp Nam tính số lượng các cặp ~(i, j)~ thỏa mãn điều kiện trên.
Dữ liệu đầu vào
Gồm ~2 \times T + 1~ dòng:
- Dòng đầu tiên chứa số nguyên ~T~ là số bộ dữ liệu kiểm tra ~(1 \le T \le 60)~.
- Mỗi bộ dữ liệu gồm:
- Dòng đầu chứa hai số nguyên ~N~ và ~K~ ~(1 \le N \le 10^5; 0 \le K \le 10^9)~.
- Dòng thứ hai chứa ~N~ số nguyên dương ~a_1, a_2, \ldots, a_n~ ~(1 \le a_i \le 10^9)~.
Dữ liệu đầu ra
Gồm ~T~ dòng, với mỗi bộ dữ liệu, in ra số lượng cặp ~(i, j)~ thỏa mãn điều kiện của bài toán.
Ràng buộc dữ liệu
- Có 50% số test ứng với 50% số điểm của câu: ~1 \le T \le 40; 1 \le N \le 10^3~;
- Có 30% test khác ứng với 30% số điểm của câu: ~1 \le T \le 10; 10^3 < N \le 10^4~;
- Có 20% test còn lại ứng với 20% số điểm của câu: ~1 \le T \le 10; 10^4 < N \le 10^5~.
Ví dụ
Ví dụ 1
INPUT
2
5 2
1 5 3 4 2
4 1
1 2 2 3
OUTPUT
7
5
Giải thích:
- Bộ dữ liệu ~1~: Sau sắp xếp tăng dần: ~\{1, 2, 3, 4, 5\}~; Có các cặp chỉ số ~(1,2), (1,3), (2,3), (2,4), (3,4), (3,5), (4,5)~ thỏa mãn ~\rightarrow~ tổng ~= 7~.
- Bộ dữ liệu ~2~: Các cặp chỉ số ~(1,2), (1,3), (2,3), (2,4), (3,4)~ thỏa mãn ~\rightarrow~ tổng ~= 5~.
Bình luận