Trò chơi máy tính
Nộp bài giải
Điểm:
6,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Dạng bài
Ngôn ngữ cho phép
Ada, Algol, Assembly, Awk, C, C#, C++, D, Dart, Forth, Fortran, Go, Groovy, Java, Javascript, Kotlin, Lisp, Lua, Nim, ObjC, Pascal, Perl, PHP, Pike, Python, Racket, Ruby, Rust, Scheme, Scratch, Sed, TCL, Typescript, V, Zig
Trong trò chơi máy tính yêu thích của Petya, anh đến vòng cuối phải đánh trùm. Petya tìm được một số bùa chú để hỗ trợ.
Trận đấu diễn ra như sau:
- Trùm có hai tham số: — máu khởi điểm (cũng là máu tối đa), và — lượng máu hồi mỗi giây.
- Mỗi bùa chú có hai tham số: — sức mạnh tính theo phần trăm máu của trùm (chỉ được dùng bùa khi máu hiện tại của trùm của ), và — sát thương mỗi giây mà bùa gây ra cho trùm kể từ khi được kích hoạt cho đến hết trận.
Mỗi giây, các hành động diễn ra theo đúng thứ tự:
- Trùm nhận sát thương từ tất cả các bùa đã được kích hoạt.
- Trùm hồi máu (nhưng không vượt quá ).
- Người chơi có thể dùng tối đa một bùa mới (nếu điều kiện thỏa).
Trùm bị đánh bại nếu cuối một giây nào đó máu của trùm . Bùa được đánh số từ , và giây là giây đầu tiên người chơi được phép dùng bùa. Không được dùng bùa sau khi trùm đã bị đánh bại.
Hãy xác định liệu Petya có thể đánh bại trùm với bộ bùa hiện có hay không, và nếu được thì thời gian tối thiểu là bao nhiêu.
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , .
- dòng tiếp theo, dòng thứ chứa hai số nguyên và — tham số của bùa thứ .
Dữ liệu ra
- Nếu không thể đánh bại trùm, in ra duy nhất một dòng
NO. - Ngược lại, dòng đầu in
YES. Dòng thứ hai in hai số: thời gian tối thiểu để đánh bại trùm và số bùa đã dùng. Mỗi dòng tiếp theo in hai số: thời điểm dùng bùa và chỉ số của bùa đó, in theo đúng thứ tự dùng.
Nếu có nhiều lịch trình tối ưu, in ra một lịch trình bất kỳ.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 100 10 100 11 90 9 |
YES 19 2 0 1 10 2 |
Tại giây 0 dùng bùa 1 (sát thương /giây). Mỗi giây trùm mất máu, nên sau giây máu còn , dùng được bùa 2. Từ đó mất máu/giây, đến giây thì máu . |
| 2 10 3 100 3 99 1 |
NO | Sau khi dùng bùa 1 ở giây 0, máu trùm luôn quay về () sau bước hồi, nên không bao giờ dùng được bùa 2 (yêu cầu ). |
| 3 200 10 100 3 100 8 50 1000 |
YES 102 3 0 2 1 1 101 3 |
Dùng bùa 2 rồi bùa 1 trong hai giây đầu. Sát thương tổng cộng /giây, máu giảm dần /giây từ . Đến giây máu còn thì dùng được bùa 3 (sát thương cực lớn) và kết liễu vào giây . |
Bình luận