Xâu Sao Hỏa

Đề bài

Mô tả

Cho một xâu s gồm các chữ cái Latin in hoa, độ dài n.

Ta chọn ra hai đoạn con không giao nhau gồm các vị trí liên tiếp của s: cụ thể chọn bốn số nguyên a,b,c,d thỏa mãn 1≤a≤b<c≤d≤n, rồi lấy các ký tự sasa+1…sb ghép liền với scsc+1…sd (đọc từ trái sang phải). Kết quả là một xâu mới.

Lưu ý cả hai đoạn đều không rỗng (a≤b và c≤d), và đoạn thứ nhất nằm hoàn toàn trước đoạn thứ hai (b<c).

Cho m xâu "đẹp" đôi một khác nhau. Hãy đếm xem trong m xâu đó có bao nhiêu xâu có thể thu được theo cách ghép nói trên (với ít nhất một cách chọn a,b,c,d).

Dữ liệu vào

  • Dòng đầu chứa xâu s gồm các chữ cái Latin in hoa.
  • Dòng thứ hai chứa số nguyên m, số lượng xâu đẹp.
  • m dòng tiếp theo, mỗi dòng chứa một xâu đẹp pi gồm các chữ cái Latin in hoa. Các xâu đẹp đôi một khác nhau.

Dữ liệu ra

  • In ra một số nguyên duy nhất, số xâu đẹp có thể thu được.

Ràng buộc

  • 2≤n≤105
  • 1≤m≤100
  • 1≤|pi|≤1000

Ví dụ

Input Output Giải thích
ABCBABA
2
BAAB
ABBA
1 Chỉ thu được xâu ABBA: chọn hai đoạn AB (vị trí 1,2) và BA (vị trí 4,5) cho ta AB + BA = ABBA. Xâu BAAB không thể ghép được.
AB
1
AB
1 Tách thành đoạn A (vị trí 1) và đoạn B (vị trí 2), ghép lại được AB.
AABBB
1
BBABAB
0 Không có cách chọn hai đoạn nào ghép thành BBABAB.

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