공통 부분 문자열 쿼리
시간 제한4초메모리 제한1024 MB
문자열 N개가 주어지고 길이의 합은 20만 이하입니다. 각 질의마다 S_i와 S_j에 공통으로 나타나는 서로 다른 부분 문자열의 개수를 구합니다.
문제
알파벳 소문자로만 이루어진 개의 문자열 이 주어진다. 다음 쿼리를 처리하는 프로그램을 작성하시오.
- : 와 의 서로 다른 공통 부분 문자열의 개수를 구한다.
문자열의 부분 문자열은 그 문자열에서 비어 있지 않은 연속한 부분이다. 두 문자열 와 의 공통 부분 문자열은 의 부분 문자열이면서 의 부분 문자열인 문자열이다.
입력
첫째 줄에 문자열의 개수 이 주어진다(). 이어지는 개의 줄에 알파벳 소문자로 이루어진 문자열 이 한 줄에 하나씩 주어진다. 의 길이의 합은 을 넘지 않는다.
이어지는 줄에 쿼리의 개수 가 주어진다(). 이어지는 개의 줄에는 쿼리를 나타내는 두 정수 와 가 주어진다().
출력
각 쿼리의 답을 입력 순서대로 한 줄에 하나씩 출력한다.