만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

맥스와 듀크

시간 제한4초메모리 제한1024 MB

요약
길이 n인 문자열 s와 m개의 구간 [l, r]이 주어질 때, 각 구간 안에 완전히 포함된 회문 부분 문자열의 개수를 구합니다.
난이도

어려움10점 중 9점

유형
문자열, 문자열 매칭, 세그먼트 트리, 누적 합
정답자
아직 제출이 없습니다

문제

맥스와 듀크는 육가공 공장에 들어갔다가 아주 긴 소시지 사슬을 발견했다. 이 사슬은 문자열 ss로 나타낼 수 있으며, 소시지 하나는 소문자 라틴 알파벳 한 글자에 대응한다.

소시지 구간 [a,b][a, b]의 연속된 나열을 뒤집었을 때 원래와 같으면 이 구간을 맛있다고 부른다. 맥스는 매 순간 구간 [l,r][l, r]을 보고 듀크에게 이상한 질의를 한다. 맥스가 보는 맛있는 부분 구간이 몇 개인지 묻는 질의다.

l≤a≤b≤rl \le a \le b \le r을 만족하고 구간 [a,b][a, b]가 맛있는 aa와 bb의 쌍의 개수를 구하라.

입력

첫 줄에 정수 nn과 mm이 주어진다. nn은 문자열 ss의 길이이고, mm은 질의의 개수이다 (1≤n,m≤500 0001 \le n,m \le 500\,000).

둘째 줄에는 길이가 nn인 소문자 라틴 알파벳 문자열 ss가 주어진다.

이어서 mm개의 줄에 ii번째 질의의 경계 ll과 rr이 주어진다 (1≤l≤r≤n1 \le l \le r \le n).

출력

각 질의에 대해 맛있는 부분 구간의 개수를 출력한다.

예제1

  1. 예제 1

    입력
    8 5
    oobokkor
    1 3
    1 8
    2 2
    4 7
    5 8
    
    예상 출력
    4
    12
    1
    6
    5