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

Tác giả:
Dạng bài

Tại hành lang có ~N~ hộp kẹo đánh số từ ~0~ đến ~N-1~, hộp thứ ~i~ còn ~a_i~ chiếc kẹo (không âm). Mỗi thao tác chỉ được đổi chỗ hai phần tử kề nhau trong dãy ~a_0, a_1, \ldots, a_{N-1}~. Mục tiêu là sắp xếp (bằng các phép đổi chỗ kề nhau) sao cho tổng của ~F~ phần tử đầu tiên đạt ít nhất ~T~ với số thao tác ít nhất.

Yêu cầu

Cho ~N~, ~F~, ~T~ và dãy ~a~, hãy tìm số thao tác đổi chỗ kề nhau ít nhất cần thực hiện để tổng của ~F~ phần tử đầu tiên trong mảng đạt ít nhất T. Nếu không thể, in ra "NO".

Dữ liệu

  • Dòng 1: ba số nguyên ~N, F, T~ (~1 \le N \le 100~, ~1 \le F \le N~, ~0 \le T \le 10^4~).
  • Dòng 2: ~N~ số nguyên ~a_0, a_1, \ldots, a_{N-1}~ (~0 \le a_i \le 10^2~).

Kết quả

  • Nếu không thể đạt mục tiêu, in ra NO.
  • Ngược lại, in ra một số nguyênsố thao tác tối thiểu (số lần đổi chỗ hai phần tử kề nhau).

Ví dụ

Ví dụ 1

Input

6 2 27
10 4 20 6 3 3

Output

1
Ví dụ 2

Input

3 2 100
20 30 60

Output

NO

Giải thích

  • Ví dụ 1: Đổi chỗ kề nhau giữa ~4~ và ~20~ để đưa ~20~ vào nhóm ~F=2~ phần tử đầu → tổng hai phần tử đầu đạt ~10+20=30 \ge 27~, chỉ cần 1 thao tác.
  • Ví dụ 2: Dù hoán đổi thế nào, tổng của hai phần tử đầu cũng không thể đạt ~100~, nên in NO.

Chấm điểm

  • Subtask 1 (30%): ~a_i \le 1~ cho mọi ~i~.
  • Subtask 2 (30%): ~N \le 20~.
  • Subtask 3 (40%): Không ràng buộc bổ sung (theo đề).

$$ \text{Gợi ý cài đặt (không bắt buộc): Chọn tập }F\text{ phần tử lớn nhất có thể đưa lên đầu; } \text{số phép đổi chỗ tối thiểu là tổng khoảng cách di chuyển (đếm nghịch thế) của các phần tử được chọn.} $$


Bình luận

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


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