JOI 2023 - Japan Sinks 2
Xem PDFQuần đảo Nhật Bản trải dài theo hướng đông tây. Các đường ranh giới theo hướng bắc nam chia quần đảo thành \(N\) khu vực, được đánh số từ \(1\) đến \(N\) theo thứ tự từ tây sang đông. Hiện tại, khu vực \(i\) (\(1 \le i \le N\)) có độ cao \(A_i\) mét.
Bão thường xuyên xảy ra tại quần đảo. Khi có bão, sóng biển gây xói mòn và làm giảm độ cao của các khu vực theo quy tắc sau.
Trong một cơn bão có gió tây với cường độ \(x\), xét \(x\) khu vực đầu tiên tính từ phía tây. Mọi khu vực trong số đó mà không có khu vực nào cao hơn nó ở phía tây đều bị giảm độ cao đi \(1\) mét. Cụ thể, gọi \(a_i\) là độ cao của khu vực \(i\) trước cơn bão. Độ cao của khu vực \(i\) giảm đi \(1\) mét nếu \(i \le x\) và \(a_k \le a_i\) với mọi \(k\) thỏa mãn \(1 \le k < i\); trong các trường hợp khác, độ cao không thay đổi.
Trong một cơn bão có gió đông với cường độ \(x\), xét \(x\) khu vực đầu tiên tính từ phía đông. Mọi khu vực trong số đó mà không có khu vực nào cao hơn nó ở phía đông đều bị giảm độ cao đi \(1\) mét. Cụ thể, gọi \(a_i\) là độ cao của khu vực \(i\) trước cơn bão. Độ cao của khu vực \(i\) giảm đi \(1\) mét nếu \(i \ge N - x + 1\) và \(a_k \le a_i\) với mọi \(k\) thỏa mãn \(i < k \le N\); trong các trường hợp khác, độ cao không thay đổi.
Bạn cần mô phỏng các sự kiện trong \(Q\) ngày tiếp theo. Vào ngày thứ \(j\) (\(1 \le j \le Q\)), sự kiện xảy ra được xác định như sau:
- Nếu \(T_j = 1\), có một cơn bão gió tây với cường độ \(X_j\).
- Nếu \(T_j = 2\), có một cơn bão gió đông với cường độ \(X_j\).
- Nếu \(T_j = 3\), cần báo cáo độ cao hiện tại của khu vực \(X_j\).
Các ràng buộc bảo đảm độ cao của mọi khu vực luôn không âm.
Cho độ cao hiện tại của các khu vực và các sự kiện trong \(Q\) ngày tiếp theo. Với mỗi ngày có \(T_j = 3\), hãy tìm độ cao của khu vực được chỉ định.
Dữ liệu vào
Dữ liệu vào có dạng:
N Q
A_1 A_2 ... A_N
T_1 X_1
T_2 X_2
...
T_Q X_Q
Dữ liệu ra
Với mỗi \(j\) (\(1 \le j \le Q\)) có \(T_j = 3\), in trên một dòng số nguyên biểu diễn độ cao, tính bằng mét, của khu vực \(X_j\) tại ngày thứ \(j\). In các kết quả theo thứ tự các ngày.
Ràng buộc
- \(1 \le N \le 300\,000\).
- \(1 \le Q \le 300\,000\).
- \(Q \le A_i \le 10^9\) (\(1 \le i \le N\)).
- \(1 \le T_j \le 3\) (\(1 \le j \le Q\)).
- \(1 \le X_j \le N\) (\(1 \le j \le Q\)).
- Tất cả các giá trị trong dữ liệu vào đều là số nguyên.
Chấm điểm
- \(5\) điểm: \(N \le 2000\), \(Q \le 2000\).
- \(27\) điểm: Nếu \(T_j \ne 3\) thì \(X_j = N\), với mọi \(1 \le j \le Q\).
- \(28\) điểm: \(A_1 = A_2 = \cdots = A_N = Q\).
- \(20\) điểm: \(T_j \ne 2\) với mọi \(1 \le j \le Q\).
- \(20\) điểm: Không có ràng buộc bổ sung.
Ví dụ
Ví dụ 1
Input
5 7
7 7 7 7 7
1 3
1 1
3 1
2 1
2 5
3 2
3 4
Output
5
6
6
Giải thích
Diễn biến các sự kiện và độ cao của các khu vực được mô tả trong bảng sau. Độ cao được liệt kê theo thứ tự khu vực \(1, 2, 3, 4, 5\), tính bằng mét.
| Thời điểm | Độ cao sau sự kiện | Sự kiện |
|---|---|---|
| Ban đầu | \(7, 7, 7, 7, 7\) | Chưa có sự kiện nào. |
| Ngày \(1\) | \(6, 6, 6, 7, 7\) | Có bão gió tây cường độ \(3\). Trong ba khu vực đầu tiên tính từ phía tây, các khu vực \(1, 2, 3\) đều không có khu vực nào cao hơn ở phía tây, nên cả ba bị giảm độ cao. |
| Ngày \(2\) | \(5, 6, 6, 7, 7\) | Có bão gió tây cường độ \(1\). Trong một khu vực đầu tiên tính từ phía tây, chỉ khu vực \(1\) thỏa mãn điều kiện không có khu vực nào cao hơn ở phía tây, nên khu vực này bị giảm độ cao. |
| Ngày \(3\) | \(5, 6, 6, 7, 7\) | Độ cao hiện tại của khu vực \(1\) là \(5\) mét, nên in ra \(5\). |
| Ngày \(4\) | \(5, 6, 6, 7, 6\) | Có bão gió đông cường độ \(1\). Trong một khu vực đầu tiên tính từ phía đông, chỉ khu vực \(5\) thỏa mãn điều kiện không có khu vực nào cao hơn ở phía đông, nên khu vực này bị giảm độ cao. |
| Ngày \(5\) | \(5, 6, 6, 6, 5\) | Có bão gió đông cường độ \(5\). Trong năm khu vực đầu tiên tính từ phía đông, chỉ các khu vực \(4, 5\) không có khu vực nào cao hơn ở phía đông, nên hai khu vực này bị giảm độ cao. |
| Ngày \(6\) | \(5, 6, 6, 6, 5\) | Độ cao hiện tại của khu vực \(2\) là \(6\) mét, nên in ra \(6\). |
| Ngày \(7\) | \(5, 6, 6, 6, 5\) | Độ cao hiện tại của khu vực \(4\) là \(6\) mét, nên in ra \(6\). |
Ví dụ này thỏa mãn ràng buộc của các bài toán con \(1, 3, 5\).
Ví dụ 2
Input
5 7
10 13 14 7 12
1 5
2 5
3 3
3 4
2 5
3 1
3 2
Output
12
7
9
11
Giải thích
Ví dụ này thỏa mãn ràng buộc của các bài toán con \(1, 2, 5\).
Ví dụ 3
Input
5 6
8 6 7 8 9
1 1
3 1
3 5
1 3
3 2
3 3
Output
7
9
6
6
Giải thích
Ví dụ này thỏa mãn ràng buộc của các bài toán con \(1, 4, 5\).
Ví dụ 4
Input
5 6
6 8 6 9 7
2 1
2 4
3 5
1 5
3 4
3 3
Output
5
7
6
Giải thích
Ví dụ này thỏa mãn ràng buộc của các bài toán con \(1, 5\).
Nguồn
Bản dịch tiếng Việt từ đề gốc tiếng Nhật của Ủy ban Olympic Tin học Nhật Bản. Đề gốc và bản dịch được cung cấp theo giấy phép CC BY-SA 4.0.
Kỳ thi:
- JOI 2023 - Vòng loại 2 (11 Tháng 12., 2022)
Bình luận