Tìm Hợp Âm

Đề bài

Mô tả

Cho một dãy gồm N nốt nhạc và một mẫu hợp âm gồm C nốt. Một đoạn C nốt liên tiếp trong dãy được gọi là khớp với mẫu hợp âm nếu sau khi sắp xếp cả hai, hiệu tương ứng giữa các nốt bằng nhau (tức là có thể chuyển vị và sắp xếp lại để trùng khớp).

Hãy tìm tất cả các vị trí bắt đầu của đoạn khớp trong dãy.

Dữ liệu vào

  • Dòng 1: Số nguyên N — số nốt trong dãy
  • N dòng tiếp theo: Mỗi dòng chứa một số nguyên — giá trị nốt nhạc (từ 1 đến 88)
  • Dòng tiếp: Số nguyên C — số nốt trong mẫu hợp âm
  • C dòng tiếp theo: Mỗi dòng chứa một số nguyên — giá trị nốt trong mẫu

Dữ liệu ra

  • Dòng 1: Số lượng K đoạn khớp tìm được
  • K dòng tiếp theo: Các vị trí bắt đầu (đánh số từ 1), theo thứ tự tăng dần

Ràng buộc

  • 1C10
  • 1N20000
  • Giá trị mỗi nốt từ 1 đến 88

Ví dụ

Input Output Giải thích
6
1
8
5
7
9
10
3
4
6
7
2
2
4
Mẫu {4,6,7} khớp với {8,5,7} tại vị trí 2 (chuyển vị +1) và {7,9,10} tại vị trí 4 (chuyển vị +3)

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