trang chủ / bài tập / serejanag

Hoán vị trong dãy cách đều

Đề bài

Mô tả

Cho hai dãy số nguyên a1,a2,,anb1,b2,,bm, cùng với một số nguyên dương p.

Một vị trí q được gọi là hợp lệ nếu q1, q+(m1)·pn, và dãy con cách đều

aq, aq+p, aq+2p, , aq+(m1)p

có thể thu được từ dãy b bằng cách sắp xếp lại thứ tự các phần tử. Nói cách khác, hai dãy này phải giống hệt nhau về số lần xuất hiện của từng giá trị (thứ tự không quan trọng).

Hãy tìm tất cả các vị trí hợp lệ q.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, p.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.
  • Dòng thứ ba chứa m số nguyên b1,b2,,bm.

Dữ liệu ra

  • Dòng đầu in ra số lượng vị trí hợp lệ.
  • Dòng thứ hai in ra các vị trí hợp lệ theo thứ tự tăng dần, cách nhau bởi dấu cách. Nếu không có vị trí nào, in ra dòng trống.

Ràng buộc

  • 1n,m2·105
  • 1p2·105
  • 1ai109
  • 1bi109

Ví dụ

Input Output Giải thích
5 3 1
1 2 3 2 1
1 2 3
2
1 3
Với p=1 ta xét các đoạn liên tiếp độ dài 3. Đoạn bắt đầu tại q=1(1,2,3), đoạn bắt đầu tại q=3(3,2,1): cả hai đều là hoán vị của b. Đoạn tại q=2(2,3,2) nên không hợp lệ.
6 3 2
1 3 2 2 3 1
1 2 3
2
1 2
Với p=2, tại q=1 ta lấy a1,a3,a5=(1,2,3); tại q=2 ta lấy a2,a4,a6=(3,2,1). Cả hai đều là hoán vị của b. Các vị trí q3 đều vi phạm điều kiện q+2p6.

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