VOI 22 Bài 1 - Chọn cặp

View as PDF

Submit solution

Points: 0.50 (partial)
Time limit: 2.0s
Memory limit: 512M
Input: PAIR.INP
Output: PAIR.OUT

Problem type
Allowed languages
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Hưởng ứng phong trào thi đua học tập của trường, cô giáo chủ nhiệm lớp của Nam muốn chọn các cặp đôi bạn giúp đỡ nhau cùng tiến. Lớp của Nam có ~n~ học sinh, được đánh số từ ~1~ đến ~n~, học sinh thứ ~i~ có chỉ số học lực ~a_i~. Để có được sự cân bằng giữa các cặp bạn cùng tiến, cô giáo muốn chọn các cặp bạn có tổng chỉ số học lực đôi một giữa các cặp chênh nhau không quá một giá trị nhỏ ~d~ sao cho mỗi bạn xuất hiện trong không quá một cặp. Cô giáo mong muốn chọn được nhiều cặp như vậy nhất.

Yêu cầu: Cho biết số học sinh của lớp và chỉ số học lực của từng học sinh, hãy tính số cặp bạn cùng tiến nhiều nhất mà có tổng chỉ số học lực đôi một giữa các cặp chênh nhau không quá ~d~.

Dữ liệu

Vào từ file văn bản PAIR.INP:

  • Dòng đầu tiên chứa hai số nguyên không âm ~n, d~ (~n \ge 2~);
  • Dòng thứ hai chứa ~n~ số nguyên dương, số thứ ~i~ là chỉ số học lực ~a_i~ của học sinh thứ ~i~ (~1 \le i \le n~, ~a_i \le 10^9~).

Các số trên cùng một dòng cách nhau bởi dấu cách.

Kết quả

Ghi ra file văn bản PAIR.OUT một số nguyên duy nhất là số cặp nhiều nhất tìm được.

Ràng buộc

  • Có ~20\%~ số test ứng với ~20\%~ số điểm của bài thỏa mãn: ~n \le 10~; ~d = 0~;
  • ~20\%~ số test khác ứng với ~20\%~ số điểm của bài thỏa mãn: ~n \le 200~; ~d = 0~;
  • ~20\%~ số test khác ứng với ~20\%~ số điểm của bài thỏa mãn: ~n \le 2000~; ~d = 0~;
  • ~30\%~ số test khác ứng với ~30\%~ số điểm của bài thỏa mãn: ~n \le 200~; ~d = 1~;
  • ~10\%~ số test còn lại ứng với ~10\%~ số điểm của bài thỏa mãn: ~n \le 2000~; ~d = 1~.

Ví dụ

Input
7 1
9 1 2 4 5 6 8
Output
3
Giải thích

Một phương án chọn được nhiều nhất cặp các bạn học sinh với tổng học lực đôi một chênh nhau không quá ~1~ là:

$$\begin{array}{rcl} 1 + 8 &=& 9; \\ 2 + 6 &=& 8; \\ 4 + 5 &=& 9. \end{array}$$

Một phương án khác cũng chọn được ~3~ cặp là:

$$\begin{array}{rcl} 1 + 9 &=& 10; \\ 2 + 8 &=& 10; \\ 4 + 6 &=& 10. \end{array}$$


Comments

Please read the guidelines before commenting.



  • 1
    nguot   commented on April 15, 2022, 11:28 a.m.

    this problem is so "thông minh"