제곱 부분 문자열
시간 제한8초메모리 제한512 MB
소문자 문자열과 구간 질의가 주어질 때, 각 질의 구간에 완전히 포함된 제곱 문자열(같은 두 절반이 이어진 문자열)의 개수를 구합니다.
문제
Bob에게 길이가 인 문자열 과 개의 질의 ()가 있다. 각 질의 에 대해, 를 만족하고 이 제곱 문자열인 구간 의 개수를 구하라.
문자열 이 제곱 문자열이려면 다음 두 조건을 모두 만족해야 하며, 이 조건을 만족할 때만 제곱 문자열이다.
- 은 짝수이다.
- 에 대해 이다.
입력
입력에는 여러 테스트 케이스가 들어 있다. 첫 줄에 테스트 케이스의 수 가 주어진다. 각 테스트 케이스는 다음과 같다.
첫 줄에 정수 과 가 주어진다. 둘째 줄에 길이 의 소문자 문자열 이 주어진다. 이어서 개의 줄 중 번째 줄에 질의를 나타내는 정수 와 가 주어진다.
출력
각 테스트 케이스마다 먼저 "Case #x:" 줄을 출력한다. 여기서 는 1부터 시작하는 테스트 케이스 번호다. 이후 각 질의의 답을 한 줄에 하나씩 출력한다.
제한
, , . 모든 테스트 케이스의 합은 을 넘지 않는다. 모든 테스트 케이스의 합도 을 넘지 않는다.
힌트
bb, abab, babbab는 제곱 문자열이지만 abba는 제곱 문자열이 아니다.