Gán hoặc giảm
Đề bài
Mô tả
Cho một dãy số nguyên và một số nguyên .
Trong một bước, bạn được chọn một trong hai thao tác sau:
- Chọn một chỉ số và giảm đi (tức là gán );
- Chọn hai chỉ số và rồi gán bằng (tức là gán ).
Hãy tìm số bước ít nhất cần thực hiện để tổng của dãy thoả mãn .
Các phần tử của dãy được phép mang giá trị âm trong quá trình biến đổi.
Dữ liệu vào
- Dòng đầu chứa một số nguyên là số bộ dữ liệu.
- Mỗi bộ dữ liệu gồm hai dòng:
- Dòng thứ nhất chứa hai số nguyên và .
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra trên một dòng số bước ít nhất cần thực hiện.
Ràng buộc
- Tổng của trên tất cả các bộ dữ liệu không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 1 10 20 2 69 6 9 7 8 1 2 1 3 1 2 1 10 1 1 2 3 1 2 6 1 6 8 10 |
10 0 2 7 |
Bộ 1: giảm đúng lần để tổng còn . Bộ 2: tổng bằng nên không cần làm gì. Bộ 3: gán rồi giảm đi , dãy thành có tổng , hết bước. Bộ 4: giảm ba lần để , rồi gán bằng , tổng còn , hết bước. |
| 3 5 5 1 1 1 1 1 4 3 5 5 5 5 3 100 1 2 3 |
0 8 0 |
Bộ 1: tổng bằng . Bộ 2: giảm một phần tử từ xuống mất bước, rồi gán ba phần tử còn lại bằng nó mất bước; tổng thành , hết bước. Bộ 3: tổng bằng . |
Bình luận