trang chủ / đề bài / arrqshift

Truy vấn dịch và đảo mảng

Đề bài

Mô tả

Cho một mảng a gồm n phần tử và q truy vấn tác động lên mảng. Có hai loại truy vấn:

  • Loại 1 (1 l r): dịch vòng đoạn [l,r] sang phải một vị trí. Nghĩa là với mọi x thỏa l≤x<r, giá trị mới của ax+1 bằng giá trị cũ của ax, và giá trị mới của al bằng giá trị cũ của ar.
  • Loại 2 (2 l r): đảo ngược đoạn [l,r].

Sau khi thực hiện lần lượt tất cả q truy vấn theo đúng thứ tự, ta quan tâm tới m vị trí quan trọng b1,b2,…,bm. Với mỗi i, hãy in ra giá trị nằm ở vị trí bi trong mảng cuối cùng.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, q, m.
  • Dòng thứ hai chứa n số nguyên a1,a2,…,an.
  • q dòng tiếp theo, mỗi dòng chứa ba số nguyên ti, li, ri: ti là loại truy vấn, [li,ri] là đoạn tác động.
  • Dòng cuối chứa m số nguyên b1,b2,…,bm: các vị trí quan trọng.

Dữ liệu ra

In ra m số, số thứ i là giá trị ở vị trí bi sau khi thực hiện hết các truy vấn.

Ràng buộc

  • 1≤n,q≤2·105
  • 1≤m≤100
  • 1≤ai≤109
  • 1≤ti≤2, 1≤li≤ri≤n
  • 1≤bi≤n

Ví dụ

Input Output Giải thích
6 3 5
1 2 3 4 5 6
2 1 3
2 3 6
1 1 6
2 2 1 5 3
3 3 1 5 2 Sau truy vấn 1 (đảo [1,3]): 3 2 1 4 5 6. Sau truy vấn 2 (đảo [3,6]): 3 2 6 5 4 1. Sau truy vấn 3 (dịch vòng phải [1,6]): 1 3 2 6 5 4. Các vị trí hỏi là 2, 2, 1, 5, 3 cho ra 3, 3, 1, 5, 2.
5 2 5
64 3 4 665 2
1 1 3
2 1 5
1 2 3 4 5
2 665 3 64 4 Sau truy vấn 1 (dịch vòng phải [1,3]): 4 64 3 665 2. Sau truy vấn 2 (đảo [1,5]): 2 665 3 64 4. Hỏi lần lượt các vị trí 1..5.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0