Kẹo
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
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ên là số 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