거의 같은 문자열

시간 제한5초메모리 제한512 MB

요약
각 쿼리 문자열에 대해 S의 부분 문자열 중 문자를 재배열하면 쿼리와 같아지는 것의 개수를 센다.
난이도

어려움10점 중 8점

유형
문자열, 해시맵, 문자열 매칭, 누적 합
정답자
아직 제출이 없습니다

문제

알파벳 소문자로 이루어진 문자열 SS에 대한 쿼리가 총 MM개 주어진다. 매 쿼리는 문자열 Q_iQ\_i로 이루어져 있다. 각각의 쿼리에 대해서 다음을 구해보자.

  • SS의 연속 부분 문자열 중에서 Q_iQ\_i와 거의 같은 문자열의 개수를 출력한다.

여기서 두 문자열이 거의 같다라는 것은 두 문자열을 정렬했을 때 같은 문자열을 말한다.

예를 들어 문자열 cba, bac는 두 문자열은 정렬했을 때 abc로 동일하여 거의 같은 문자열이다.

입력

첫째 줄에 정수 NN과 MM이 공백으로 구분되어 주어진다. (1≤N,M≤105)(1\leq N, M\leq 10^5)

둘째 줄에 알파벳 소문자로 이루어진 길이 NN의 문자열 SS가 주어진다.

셋째 줄부터 MM개의 줄에 걸쳐 문자열 Q_iQ\_i가 주어진다. (1≤i≤M;∑_i=1M∣Q_i∣≤105)(1 \leq i \leq M; \sum\_{i=1}^{M} |Q\_i| \leq 10^5)

출력

쿼리가 주어질 때마다 한 줄에 하나씩 정답을 출력한다.

예제2

  1. 예제 1

    입력
    3 2
    abc
    cba
    bac
    
    예상 출력
    1
    1
    
  2. 예제 2

    입력
    5 2
    ababa
    ab
    bba
    
    예상 출력
    4
    1