해밍 거리와 쿼리

이진 문자열 a와 b가 주어질 때, a의 부분 문자열과 b의 부분 문자열 사이의 해밍 거리를 묻는 질의에 답한다.

보통5누적 합문자열배열비트 연산면접 대비아직 제출이 없습니다시간 제한6초메모리 제한512 MB

문제

길이가 같은 두 바이너리 문자열 sstt의 해밍 거리는 값이 서로 다른 위치의 개수다. 예를 들어 "00111"과 "10101"의 해밍 거리는 2다.

바이너리 문자열 aabb가 주어진다. 다음 쿼리를 처리하는 프로그램을 작성하시오.

  • p1 p2 len: 두 부분 문자열 ap1ap1+1ap1+len1a_{p_1} a_{p_1+1} \ldots a_{p_1+len-1}bp2bp2+1bp2+len1b_{p_2} b_{p_2+1} \ldots b_{p_2+len-1}의 해밍 거리를 구해 출력한다.

문자열의 인덱스는 0부터 시작한다.

입력

첫째 줄에 바이너리 문자열 aa, 둘째 줄에 바이너리 문자열 bb가 주어진다. 두 문자열의 길이는 200,000 이하의 자연수다.

셋째 줄에 쿼리의 개수 qq (1q400,0001 \le q \le 400{,}000)가 주어진다. 이어지는 qq개의 줄에 쿼리 하나를 나타내는 p1p_1, p2p_2, lenlen이 공백으로 구분되어 주어진다. (1len1 \le len, 0p1alen0 \le p_1 \le |a| - len, 0p2blen0 \le p_2 \le |b| - len)

출력

각 쿼리의 답을 입력에 주어진 순서대로 한 줄에 하나씩 출력한다.