trang chủ / đề bài / valdeque

Valeriy và Deque

Đề bài

Mô tả

Cho một hàng đợi hai đầu (deque) gồm n phần tử. Phần tử thứ i có giá trị ai.

Mỗi thao tác được thực hiện như sau: lấy ra hai phần tử ở đầu bên trái của deque, gọi lần lượt là A và B. Sau đó:

  • Nếu A>B: ghi A vào đầu deque, ghi B vào cuối deque.
  • Ngược lại: ghi B vào đầu deque, ghi A vào cuối deque.

Ví dụ, nếu deque là [2,3,4,5,1] thì sau một thao tác ta ghi B=3 vào đầu và A=2 vào cuối, được [3,4,5,1,2].

Có q truy vấn, mỗi truy vấn cho một số nguyên mj. Với mỗi truy vấn, hãy cho biết hai phần tử A và B được lấy ra ở thao tác thứ mj. Các truy vấn độc lập với nhau; A và B phải được in theo đúng thứ tự chúng được lấy ra khỏi deque.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và q — số phần tử của deque và số truy vấn.
  • 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 một số nguyên mj.

Dữ liệu ra

Với mỗi truy vấn, in ra hai số A và B — hai phần tử được lấy ra ở thao tác thứ mj.

Ràng buộc

  • 2≤n≤105
  • 0≤q≤3·105
  • 0≤ai≤109
  • 1≤mj≤1018

Ví dụ

Input Output Giải thích
5 3
1 2 3 4 5
1
2
10
1 2
2 3
5 2
Thao tác 1 trên [1,2,3,4,5]: A=1,B=2. Thao tác 2 trên [2,3,4,5,1]: A=2,B=3. Đến thao tác 5 thì số lớn nhất 5 đã nằm ở đầu và đứng yên; phần còn lại quay vòng với chu kỳ n−1=4. Ở thao tác 10, deque là [5,2,3,4,1] nên A=5,B=2.
2 0
0 0
Không có truy vấn nào nên không in ra gì.

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