짝수 길이의 짝수 합
시간 제한1초메모리 제한1024 MB
0과 1로 이루어진 문자열에서 한 문자를 반전하는 갱신과, 구간 안에 1의 개수가 짝수인 짝수 길이 부분 문자열이 존재하는지 묻는 쿼리를 처리한다.
문제
길이가 이고 과 로만 이루어진 문자열이 입력으로 주어진다. 이때, 다음과 같은 쿼리를 수행해 보자.
-
: 번째 문자를 반전한다. 즉, 번째 문자가 이면 로 바꾸고, 그렇지 않으면 으로 바꾼다. ()
-
: 다음 조건을 모두 만족하는 정수 이 있다면
YES, 그렇지 않으면NO를 출력한다. ()- 번째 문자부터 번째 문자까지의 부분 문자열의 길이, 즉 은 짝수이다.
- 번째 문자부터 번째 문자까지의 부분 문자열에 있는 개의 숫자의 합, 즉 숫자 의 개수는 짝수이다. 단, 도 짝수로 간주한다.
쿼리가 누적해서 수행됨에 유의하여라.
입력
첫째 줄에 정수 과 가 공백으로 구분되어 주어진다.
둘째 줄에 과 로만 이루어져 있는, 길이가 인 문자열이 주어진다.
셋째 줄부터 개의 줄에 걸쳐 쿼리가 주어진다.
번 쿼리의 경우, 의 형식으로 주어진다.
번 쿼리의 경우, 의 형식으로 주어진다.
번 쿼리가 한 개 이상 주어짐이 보장된다.
쿼리에서 입력으로 주어지는 모든 수는 정수이다.
출력
번 쿼리가 주어질 때마다, 쿼리의 답을 한 줄에 하나씩 순서대로 출력한다.
힌트
어떤 문자열의 부분 문자열은 그 문자열의 비어 있지 않은 연속된 부분으로 정의한다.