만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

좋은 수열

시간 제한4초메모리 제한1024 MB

요약
0과 1이 같은 개수로 들어 있는 수열에서 구간을 뒤집을 때마다, 네 원소 연산으로 N을 만들 수 있는지 판단합니다.
난이도

보통10점 중 7점

유형
배열, 누적 합, 세그먼트 트리
정답자
아직 제출이 없습니다

문제

NN개의 00과 NN개의 11로 이루어진 길이 2N2N의 수열 AA가 있다. 이 수열에 다음 작업을 0회 이상 시행하여 AA에 NN이 존재하게 할 수 있으면, 수열 AA를 좋은 수열이라고 한다.

  • AA에서 연속한 정수 네 개를 골라 차례대로 xx, yy, zz, ww라고 한다. 작업을 시행하기 전 AA의 길이를 LL이라고 한다.
  • xx, yy, zz, ww를 삭제하고, 그 자리에 ww, x+yx+y를 차례대로 삽입한다.
  • 즉, A1,A2,⋯ ,x,y,z,w,⋯ ,ALA_1, A_2, \cdots, x, y, z, w, \cdots, A_L을 A1,A2,⋯ ,w,x+y,⋯ ,ALA_1, A_2, \cdots, w, x+y, \cdots, A_L로 바꾼다.

NN개의 00과 NN개의 11로 이루어진 길이 2N2N의 수열 BB가 주어진다. 다음 쿼리를 적용할 때마다 수열 BB가 좋은 수열인지 판별하라.

  • l rl\ r: l≤i≤rl \le i \le r인 모든 ii에 대해 BiB_i를 반전시킨다. 즉, 11은 00으로, 00은 11로 바꾼다. 이때 구간 [l,r][l, r]에서 11의 개수와 00의 개수는 같다고 보장된다.

입력

첫 번째 줄에 정수 NN이 주어진다.

두 번째 줄에 2N2N개의 정수 B1,B2,⋯ ,B2NB_1, B_2, \cdots, B_{2N}이 공백으로 구분되어 주어진다.

세 번째 줄에 정수 QQ가 주어진다.

이어지는 QQ개의 줄에는 각각 공백으로 구분된 두 정수 ll과 rr이 주어진다.

출력

Q+1Q+1개의 줄에 답을 출력한다. ii번째 줄에는 주어진 쿼리를 앞에서부터 i−1i-1개 적용한 뒤 BB가 좋은 수열이면 YES를, 그렇지 않으면 NO를 출력한다.

제한

  • 2≤N≤2×1052\le N\le 2\times 10^5
  • Bi∈{0,1}B_i\in\{0,1\} (1≤i≤2N)(1\le i\le 2N)
  • ∑i=12NBi=N\sum_{i=1}^{2N} B_i=N
  • 0≤Q≤2×1050\le Q\le 2\times 10^5
  • 1≤l≤r≤2N1\le l\le r\le 2N

예제1

  1. 예제 1

    입력
    3
    1 1 0 0 1 0
    2
    4 5
    1 6
    
    예상 출력
    NO
    YES
    NO