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,,pi1) 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)(3,2,1).

Dãy con của đoạn al,,ar là dãy ai1,ai2,,aik với li1<i2<<ikr.

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 (1lirim) 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

  • 1n,m,q2·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]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]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,11,2. Đoạn [1,2]1,1: không chứa. Đoạn [2,3]1,2: trùng với một phép xoay vòng. Đoạn [3,4]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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0