팝카운트 단어
시간 제한1초메모리 제한1024 MB
각 구간의 popcount 홀짝 비트열을 이어 붙인 문자열에서, 질의마다 주어진 0과 1의 패턴이 몇 번 나오는지 셉니다.
문제
구간 의 팝카운트 단어는 다음과 같이 정의한다. 여기서 이다. 는 정수 를 이진수로 표현했을 때 나타나는 1의 개수다.
개의 구간 이 주어진다. 문자열 을 만든다. 여기서 는 이어 붙이기를 뜻한다.
개의 질의가 주어진다. 번째 질의에서는 비트 패턴 가 주어진다. 가 의 부분 문자열로 몇 번 나타나는지 구한다. 출현이 서로 겹쳐도 각각 센다.
입력
첫 줄에 정수 과 ()가 주어진다. 다음 개 줄에는 번째 구간을 나타내는 정수 와 ()가 한 줄에 하나씩 주어진다. 다음 개 줄에는 비어 있지 않은 문자열 가 주어지며, '0'과 '1'로만 이루어진다. 모든 패턴 길이의 합은 최대 이다.
입력에는 테스트 케이스가 하나만 주어진다.
출력
각 질의마다 패턴이 에 나타나는 횟수를 한 줄에 하나씩 출력한다.
힌트
10100, 110, 10011.
1010011010011