문자열
시간 제한2초메모리 제한1024 MB
각 질의 (i, r)마다 s[i:i+l-1]이 R(s[i+l:i+2l-1])보다 사전순으로 작은 l의 개수를 1부터 r까지 셉니다.
문제
Little Y는 문자열을 연구하는 대학생이다. Little Y는 다음 정의를 배웠다.
- 길이가 인 문자열 에 대해, 부분 문자열 ()은 을 순서대로 이어 붙인 문자열이다.
- 길이가 인 문자열 에 대해, 는 을 순서대로 이어 붙인 문자열이다. 원래 문자열을 뒤집은 것이다.
- 길이가 같은 두 문자열 , 에 대해, 가 보다 사전순으로 작다는 것은 모든 에 대해 이고 인 이 존재한다는 뜻이다.
문자열 이 주어지고 질의가 개 주어진다. 각 질의는 정수 와 로 이루어진다. 각 질의마다 다음 두 조건을 모두 만족하는 의 개수를 구하라.
- 이 보다 사전순으로 작다.
입력
첫 줄에 두 정수 와 가 주어진다. 는 테스트 케이스 번호이고, 는 데이터 세트의 수이다. 이면 예제 테스트이다.
각 데이터 세트는 다음과 같이 주어진다.
첫 줄에 문자열의 길이 과 질의의 수 가 주어진다.
둘째 줄에 길이 의 소문자로만 이루어진 문자열 가 주어진다.
이어서 개의 줄에 질의 와 이 각각 주어진다. 이 보장된다.
출력
각 데이터 세트의 각 질의마다 조건을 만족하는 의 개수를 한 줄에 출력한다.
제한
모든 테스트 데이터에 대해 , , , 이다. 문자열 는 소문자로만 이루어진다.