Bút chì và hộp

Đề bài

Mô tả

Cho một dãy n số nguyên a1,a2,,an — độ đậm màu của n chiếc bút chì. Bạn muốn xếp toàn bộ bút chì vào các hộp (số lượng hộp tùy ý, mỗi hộp có thể chứa số bút khác nhau) sao cho cả ba điều kiện sau đều được thỏa mãn:

  • Mỗi chiếc bút thuộc về đúng một hộp.
  • Mỗi hộp không rỗng phải chứa ít nhất k chiếc bút.
  • Với mọi cặp bút i,j thuộc cùng một hộp, |aiaj|d.

Lưu ý chiều ngược lại không bắt buộc: hai chiếc bút có thể có |aiaj|d nhưng vẫn được xếp vào hai hộp khác nhau.

Hãy xác định liệu có cách xếp hợp lệ hay không.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, k, d — số lượng bút, kích thước tối thiểu của mỗi hộp không rỗng, và chênh lệch độ đậm tối đa cho phép trong cùng một hộp.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an — độ đậm của từng chiếc bút.

Dữ liệu ra

In ra YES nếu tồn tại cách xếp hợp lệ, ngược lại in NO.

Ràng buộc

  • 1kn5·105
  • 0d109
  • 1ai109

Ví dụ

Input Output Giải thích
6 3 10
7 2 7 7 4 2
YES Có thể xếp tất cả 6 bút vào cùng một hộp: chênh lệch lớn nhất là 72=510 và kích thước 63.
6 2 3
4 5 3 13 4 10
YES Xếp {3,4,4,5} thành hai hộp {3,4}{4,5} (mỗi hộp 2 bút, chênh lệch 1), còn {10,13} vào hộp thứ ba (chênh lệch 3).
3 2 5
10 16 22
NO Với mảng sau khi sắp xếp [10,16,22]: không cặp nào có chênh lệch 5, nên không thể ghép hai bút vào cùng hộp. Mà n=3k=2 buộc phải có ít nhất một hộp chứa 2 bút.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0