[Buổi 18][Heap & Hàng đợi ưu tiên][WS] Bài 1: Hàng in theo mức ưu tiên
Hàng in theo mức ưu tiên
Bối cảnh và bài toán
Một máy in giữ các job theo thứ tự FIFO nhưng chỉ in job đầu hàng khi không còn job nào khác có mức ưu tiên cao hơn. Nếu còn job ưu tiên cao hơn, job đầu được chuyển xuống cuối hàng. Cần biết job mục tiêu được in thứ mấy.
Yêu cầu
Tính thứ tự in (bắt đầu từ 1) của job có index target 0-based.
Input
- Dòng 1:
n target. - Dòng 2:
nmức ưu tiên.
Output
In một số nguyên.
Ràng buộc
1 <= n <= 2 * 10^50 <= target < n1 <= priority[i] <= 9
Chấm điểm
| Subtask | Điểm | Điều kiện | Official tests |
|---|---|---|---|
| S1 | 20% | n <= 100 | 01–04 |
| S2 | 30% | n <= 5000 | 05–10 |
| S3 | 50% | Không có ràng buộc bổ sung | 11–20 |
Ví dụ 1
Input
6 0
1 1 9 1 1 1
Output
5
Giải thích. Job priority 9 in trước; các job priority 1 quay vòng và job index0 được in thứ 5.
Ví dụ 2
Input
1 0
5
Output
1
Giải thích. Chỉ có một job.
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M05-B18-WS01 |
| Buổi | B18 |
| Loại bài | WORKSHOP |
| Mức độ khó | Trung bình (Medium) |
| Thời gian làm bài khuyến nghị | 40 phút |
| Time limit | 2 giây |
| Memory limit | 256 MB |
| Tổng điểm | 100 |
| Chuẩn ngôn ngữ tham chiếu | C++11 trở lên |
Nguồn: Phỏng theo UVa Online Judge 12100 – Printer Queue.
Comments