Đảo và hoán đổi
Đề bài
Mô tả
Cho mảng có độ dài . Bạn cần xử lý truy vấn, mỗi truy vấn thuộc một trong bốn loại sau:
- Replace — gán .
- Reverse — với mỗi , đảo ngược đoạn con .
- Swap — với mỗi , hoán đổi hai đoạn con liền kề và .
- Sum — in ra tổng các phần tử của đoạn .
Hãy viết chương trình xử lý các truy vấn cho trước một cách hiệu quả.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên — chiều dài luỹ thừa của mảng và số truy vấn.
- Dòng thứ hai chứa số nguyên .
- dòng tiếp theo mỗi dòng mô tả một truy vấn theo một trong các định dạng:
- "1 " — Replace, với , .
- "2 " — Reverse, với .
- "3 " — Swap, với .
- "4 " — Sum, với .
Bảo đảm có ít nhất một truy vấn loại 4.
Dữ liệu ra
In ra đáp án của mỗi truy vấn Sum, mỗi đáp án trên một dòng riêng.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 3 7 4 9 9 1 2 8 3 1 4 2 4 |
24 | Sau truy vấn 1: . Sau truy vấn Swap: . Sum. |
| 3 8 7 0 8 8 7 1 5 2 4 3 7 2 1 3 2 4 1 6 2 3 1 5 16 4 8 8 3 0 |
29 22 1 |
Sum. Reverse ⇒ . Swap ⇒ . Sum. Reverse ⇒ . Replace ⇒ . Sum. |
Bình luận