Xoay vòng hoán vị

Đề bài

Mô tả

Cho một hoán vị p độ dài n và một mảng a độ dài m gồm các số nguyên từ 1 đến n.

Bạn cần trả lời q truy vấn, mỗi truy vấn có dạng: đoạn con của a từ vị trí l đến vị trí r có chứa một dãy con là một phép xoay vòng của p hay không?

Một phép xoay vòng của hoán vị (p1,p2,…,pn) là hoán vị (pi,pi+1,…,pn,p1,p2,…,pi−1) với i nào đó từ 1 đến n. Ví dụ hoán vị (2,1,3) có ba phép xoay vòng: (2,1,3), (1,3,2) và (3,2,1).

Dãy con của đoạn al,…,ar là dãy ai1,ai2,…,aik với l≤i1<i2<…<ik≤r.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, q.
  • Dòng thứ hai chứa n số nguyên: hoán vị p.
  • Dòng thứ ba chứa m số nguyên từ 1 đến n: mảng a.
  • q dòng tiếp theo, mỗi dòng chứa hai số nguyên li, ri (1≤li≤ri≤m) mô tả một truy vấn.

Dữ liệu ra

In ra một xâu độ dài q gồm các ký tự 0 và 1: ký tự thứ i là 1 nếu đoạn từ vị trí li đến ri của a chứa một dãy con là phép xoay vòng của p, ngược lại là 0.

Ràng buộc

  • 1≤n,m,q≤2·105

Ví dụ

Input Output Giải thích
3 6 3
2 1 3
1 2 3 1 2 3
1 5
2 6
3 5
110 Đoạn [1,5] là 1,2,3,1,2: có dãy con 1,3,2 là một phép xoay vòng của p. Đoạn [2,6] chứa dãy con 2,1,3 đúng bằng p. Đoạn [3,5] là 3,1,2: dãy con độ dài 3 duy nhất là 3,1,2, không phải phép xoay vòng của p.
2 4 3
2 1
1 1 2 2
1 2
2 3
3 4
010 Các phép xoay vòng là 2,1 và 1,2. Đoạn [1,2] là 1,1: không chứa. Đoạn [2,3] là 1,2: trùng với một phép xoay vòng. Đoạn [3,4] là 2,2: không chứa.

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