VOI 21 Bài 1 - Tặng quà

Xem dạng PDF

Gửi bài giải


Điểm: 0,50 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Người đăng:
Nguồn bài:
Kỳ thi Học sinh giỏi Quốc gia 2021 - Ngày 1
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Nodel sắp tới, Ông Già Tuyết đã chuẩn bị ~2n~ món quà cho các bạn nhỏ. Các món quà có màu sắc đôi một khác nhau và có mã màu từ ~1~ đến ~2n~. Khi cho các món quà vào túi, Ông đã đưa ra các món quà vào theo một thứ tự mà nếu lấy ra, các món quà sẽ có mã màu lần lượt là ~c_1, c_2, \dotsc, c_{2n}~ (dãy ~c_1, c_2,\dotsc, c_{2n}~ là một hoán vị của ~1, 2, \dotsc, 2n~).

Ông Già Tuyết dự định tặng quà cho ~m (m \le n)~ bạn nhỏ, mỗi bạn sẽ dược nhận hai món quà sau hai lượt tặng. Các bạn nhỏ đứng thành một hàng và Ông sẽ đi từ đầu hàng đến cuối hàng để lần lượt tặng quà cho từng bạn. Khi đứng trước một bạn nhỏ để tặng quà, Ông lần lượt lấy từng món quà ra cho tới khi lựa chọn được một món quà phù hợp và tặng bạn nhỏ, các món quà không được lựa chọn sẽ được cất đi và không được dùng để tặng quà. Khi bạn nhỏ thứ ~m~ ở cuối hàng đã được nhận quà, Ông sẽ di chuyển về đầu hàng để tặng quà lượt thứ hai tương tự như lượt thứ nhất.

Ông được biết, các bạn nhỏ luôn mong muốn nhận được hai món quà mà chênh lệch mã màu của hai món quà đó không vượt quá ~d~. Với mong muốn mang lại nhiều niềm vui cho các bạn nhỏ, Ông quyết định việc tặng quà sẽ phải đảm bảo tất cả các bạn nhỏ đều nhận được hai món quà mà chênh lệch mã màu không vượt quá ~d~.

Một cách hình thức, gọi ~m~ là số lượng bạn nhỏ được quà, Ông cần chọn ra dãy ~2m~ chỉ số ~1 \le i_1 < i2 < \dotsc < i_m < i_{m + 1} < \dotsc i_{2m} \le 2n~ sao cho ~\left|c_{i_k} - c_{i_{m + k}}\right| \le d~ với mọi ~1 \le k \le m~.

Ông Già Tuyết biết rằng, có thể không tồn tại cách chọn được ~2m~ chỉ số thỏa mãn, điều đó cũng có nghĩa là không thể tặng quà như mong muốn cho cả ~m~ bạn nhỏ. Do đó, với một số nguyên dương ~d~ và thứ tự các món quà lấy ra có mã màu lần lượt là ~c_1, c_2, \dotsc, c_{2m}~, Ông muốn tính số lượng nhiều nhất các bạn nhỏ mà Ông có thể tặng quà.

Yêu cầu: Hãy giúp Ông Già Tuyết tính số lượng nhiều nhất các bạn nhỏ mà Ông có thể tặng quà đáp ứng điều kiện nêu trên.

Dữ liệu

Vào từ đầu vào chuẩn (không phải từ file NOEL.INP):

  • Dòng thứ nhất chứa hai số nguyên dương ~n~ và ~d (d \le 5)~.
  • Dòng thứ hai chứa ~2n~ số nguyên dương ~c_1, c_2, \dotsc, c_{2n}~ là mã màu của các món quà lần lượt được lấy ra.

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 đầu ra chuẩn (không phải ra file NOEL.OUT) một số nguyên duy nhất là số lượng nhiều nhất các bạn nhỏ mà Ông Già Tuyết có thể tặng quà.

Ràng buộc

  • Có ~40\%~ số test tương ứng với ~40\%~ số điể của bài thỏa mãn ~n \le 10~;
  • ~40\%~ số test khác ứng với ~40\%~ số điểm của bài thỏa mãn ~n \le 100~;
  • ~20\%~ số test còn lại ứng với ~20\%~ số điểm của bài thỏa mãn ~n \le 1000~.

Ví dụ

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

Ông Già Tuyết có thể tặng tối đa cho 2 bạn nhỏ.

  • Lượt thứ nhất, món quà có mã màu 5 tặng bạn thứ nhất, món quà có mã màu 3 tặng bạn thứ hai.
  • Lượt thứ hai, món quà có mã màu 4 tặng bạn thứ nhất và món quà có mã màu 2 tặng bạn thứ hai.

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 4
    huyleee  đã bình luận lúc 15, Tháng 3, 2024, 14:10 sửa 2

    bài này hay quá


  • -24
    GiaBaomtp12  đã bình luận lúc 15, Tháng 9, 2023, 1:10

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


    • -22
      GiaBaomtp12  đã bình luận lúc 16, Tháng 9, 2023, 2:18

      Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.