Summer Contest #01 - Đoạn lãnh tụ

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1400 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: lanhtuvidai.inp Output: lanhtuvidai.out

Sau khi khám phá gần như toàn bộ Việt Nam, ledinhbaonam, PhuocThien, uiaPrototype tiếp tục hành trình đến Nghệ An — quê hương của Chủ tịch Hồ Chí Minh, vị lãnh tụ vĩ đại của dân tộc Việt Nam.

Tại khu lưu trữ đặc biệt, cả nhóm phát hiện một bản mã cổ gồm một xâu ký tự \(S\) chỉ chứa các chữ cái Latin thường.

Theo ghi chép để lại, một đoạn thông điệp được gọi là đoạn lãnh tụ nếu thỏa mãn:

  • Đoạn đó là palindrome.

Tuy nhiên, hệ thống cổ còn đưa ra thêm \(q\) nghi thức đặc biệt.

Mỗi nghi thức gồm hai số nguyên \(l, r\), yêu cầu:

Xét riêng đoạn con:

\[ S_lS_{l+1}\dots S_r \]

hãy đếm số lượng xâu con liên tiếp của đoạn này là đoạn lãnh tụ.

Nhiệm vụ

  • Với mỗi truy vấn, hãy in ra số lượng đoạn lãnh tụ trong đoạn được yêu cầu.

Input

  • Dòng đầu chứa ba số nguyên \(n, q, k\). (\(1 \le n, q \le 3000\), \(1 \le k \le 26\))
  • Dòng thứ hai chứa xâu \(S\). (\(|S| = n\))
  • \(q\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(l,r\) (\(1 \le l \le r \le n\))

Output

  • Với mỗi truy vấn, in ra một số nguyên là đáp án tương ứng.

Example

Test 1

Input
6 1 2
aabbaa
1 6
Output
11
Note

Với truy vấn:

1 6

Các palindrome có không quá 2 ký tự khác nhau gồm:

a(1→1)
a(2→2)
b(3→3)
b(4→4)
a(5→5)
a(6→6)
aa(1→2)
bb(3→4)
aa(5→6)
abba(2→5)
aabbaa(1→6)

Test 2

Input
20 3 3
abacabadabacabaabba
1 20
3 15
8 20
Output
37
23
22

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: