#SGM0000004. RMQ với phép dịch vòng (RMQ with Shifts)
RMQ với phép dịch vòng (RMQ with Shifts)
RMQ với phép dịch vòng (RMQ with Shifts)
Nguồn: UVa
Phiên bản: Phước Hưng OJ Extended
Đề bài
Cho mảng đánh số từ . Có hai loại thao tác. query(L,R) yêu cầu giá trị nhỏ nhất trên đoạn . shift(i_1,i_2,\ldots,i_k) với thực hiện dịch vòng trái các giá trị tại những vị trí đã nêu: giá trị cũ ở chuyển đến , ..., và giá trị cũ ở chuyển đến .
Input
- Dòng đầu chứa và .
- Dòng thứ hai chứa số nguyên dương không vượt quá .
- Mỗi trong dòng tiếp theo là một chuỗi thao tác
query(...)hoặcshift(...), không chứa khoảng trắng và có độ dài không quá ký tự. Mọi thao tác đều hợp lệ.
Output
Với mỗi thao tác query, in giá trị nhỏ nhất trên đoạn được hỏi.
Subtask
- Subtask 1 — 20%: .
- Subtask 2 — 30%: .
- Subtask 3 — 50%: , .
Ví dụ
Input
7 5
6 2 4 8 5 1 4
query(3,7)
shift(2,4,5,7)
query(1,4)
shift(1,2)
query(2,2)
Output
1
4
6
Giải thích
Truy vấn đầu tiên xét các giá trị nên kết quả là . Sau shift(2,4,5,7), mảng thành ; vì vậy query(1,4) cho . Sau shift(1,2), hai giá trị đầu đổi chỗ thành , nên query(2,2) cho .