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

Số xâu con tốt

Đề bài

Mô tả

Cho xâu sn luật. Mỗi luật là một bộ ba (p,l,r), trong đó p là một xâu và l,r là hai số nguyên không âm (lr).

Ta nói xâu t thoả mãn luật (p,l,r) nếu số lần xuất hiện của t trong p nằm trong đoạn [l,r] (tính cả hai đầu). Số lần xuất hiện của xâu t trong xâu p là số cặp chỉ số (i,j) với 1ij|p| sao cho p[i..j]=t (cho phép các lần xuất hiện chồng lên nhau).

Một xâu t được gọi là tốt nếu nó thoả mãn tất cả n luật đã cho.

Hãy đếm số xâu con khác nhau của s là xâu tốt. Hai xâu con s[x..y]s[z..w] được coi là khác nhau khi và chỉ khi s[x..y]s[z..w] (so sánh nội dung xâu, không so sánh vị trí).

Dữ liệu vào

  • Dòng đầu chứa xâu s.
  • Dòng thứ hai chứa số nguyên n.
  • n dòng tiếp theo, mỗi dòng chứa một xâu pi và hai số nguyên li,ri cách nhau bởi dấu cách (0liri|pi|).

Tất cả các xâu cho trước đều khác rỗng và chỉ gồm các chữ cái Latinh thường.

Dữ liệu ra

Một số nguyên — số xâu con khác nhau của s là xâu tốt.

Ràng buộc

  • 0n10.
  • |s|,|pi|200.

Ví dụ

Input Output Giải thích
aaab
2
aa 0 0
aab 1 1
3 Ba xâu tốt là «aab», «ab» và «b». Các xâu con khác hoặc chứa «aa» (vi phạm luật 1) hoặc không xuất hiện trong «aab» (vi phạm luật 2).
ltntlnen
3
n 0 0
ttlneenl 1 4
lelllt 1 1
2 Chỉ hai xâu «e» và «t» thoả mãn cả ba luật.
a
0
1 Khi không có luật nào, mọi xâu con đều tốt — s chỉ có một xâu con duy nhất là «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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0