Query-Max 3

Xem PDF



Tác giả:
Dạng bài
Điểm: 500 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho dãy \(A\) gồm \(N\) phần tử là các số nguyên dương \(A_1, A_2, ..., A_N\) (\(A_i \leq 10^9\)). Cho \(Q\) thao tác thực liện lần lượt, thao tác thứ \(i\) sẽ có một trong \(4\) loại như sau:

  • \(1\) \(p_i\) \(x_i\): Chèn giá trị \(x_i\) vào giữa hai vị trí \(p_i - 1\)\(p_i\) trong dãy \(A\) (\(1 \leq x_i \leq 10^9\), \(1 \leq p_i \leq T + 1\), với \(T\) là số phần tử hiện có trong dãy \(A\). Nếu \(p_i = T + 1\), chèn \(x_i\) vào cuối dãy \(A\)).
  • \(2\) \(u_i\) \(l_i\) \(v_i\): Chuyển tất cả các phần tử liên tiếp, bắt đầu từ vị trí \(u_i\), kết thúc ở vị trí \(u_i + l_i - 1\), chèn vào trước vị trí \(v_i\) trong số còn lại (\(1 \leq u_i \leq T\), \(u_i + l_i - 1 \leq T\) \(1 \leq v_i \leq T - l_i + 1\), với \(T\) là số phần tử hiện có trong dãy \(A\). Nếu \(v_i = T - l_i + 1\) thì chuyển tất cả các phần tử liên tiếp, bắt đầu từ vị trí \(u_i\), kết thúc ở vị trí \(u_i + l_i - 1\) vào cuối dãy \(A\)).
  • \(3\) \(p_i\): Xoá phần tử ở vị trí \(p_i\) (\(1 \leq p_i \leq T\), với \(T\) là số phần tử hiện có trong dãy \(A\)).
  • \(4\) \(u_i\) \(v_i\): Tìm giá trị lớn nhất trong các phần tử từ vị trí \(u_i\) tới vị trí \(v_i\) (\(1 \leq u_i \leq v_i \leq T\), với \(T\) là số phần tử hiện có trong dãy \(A\)).

Yêu cầu
Thực hiện tất cả lần lượt \(Q\) thao tác, và in ra kết quả của thao tác loại \(4\).

Input

  • Dòng thứ nhất gồm hai số nguyên dương \(N, Q\).
  • Dòng thứ hai gồm \(N\) số nguyên dương \(A_1, A_2, ..., A_N\).
  • \(Q\) dòng tiếp theo, với dòng thứ \(i\) chứa một trong \(4\) thao tác:
    • \(1\) \(p_i\) \(x_i\).
    • \(2\) \(u_i\) \(l_i\) \(v_i\).
    • \(3\) \(p_i\).
    • \(4\) \(u_i\) \(v_i\).

Output

  • Với thao tác loại \(4\) có dạng \(4\) \(u\) \(v\), in ra giá trị lớn nhất trong các phần tử từ vị trí \(u\) tới vị trí \(v\).

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): \(N \leq 10^3\), \(Q \leq 10^3\).
  • Subtask \(2\) (\(30\%\) số điểm): \(N \leq 10^5\), \(Q \leq 10^5\), chỉ có các thao tác loại \(4\).
  • Subtask \(3\) (\(40\%\) số điểm): \(N \leq 10^5\), \(Q \leq 10^5\).

Example

Test 1

Input
3 6
2 3 1
1 3 2
2 2 1 3
3 1
4 1 3
1 4 5
4 2 4 
Output
3
5
Note

Nên làm bài Query-Max 2 trước khi làm bài này.


Bình luận


  • 0
    Toilaaibanbietko7A4    3:43 p.m. 8 Tháng 9, 2020 chỉnh sửa 2

    2 ui li vi: Chuyển tất cả các phần tử liên tiếp, bắt đầu từ vị trí ui, kết thúc ở vị trí ui+li−1, chèn vào trước vị trí vi trong số còn lại (1≤ui≤T, ui+li−1≤T 1≤vi≤T−li+1, với T là số phần tử hiện có trong dãy A). Nếu vi=T−li+1 thì chuyển tất cả các phần tử liên tiếp, bắt đầu từ vị trí ui, kết thúc ở vị trí ui+li−1 vào cuối dãy A).

    Có ai giải thích giùm câu này đc không? Tui không hỉu???