좋은 수열

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

문제

$N$개의 $0$과 $N$개의 $1$로 이루어진 길이 $2N$의 수열 $A$가 있을 때, 다음과 같은 작업을 $0$회 이상 시행하여 $A$에 $N$이 존재하게 할 수 있으면 그런 수열 $A$를 좋은 수열이라고 하자.

  • $A$에서 연속한 $4$개의 정수를 골라 순서대로 $x$, $y$, $z$, $w$라고 하고, 현재 작업 진행 전 $A$의 크기를 $L$이라 하자.
  • $x$, $y$, $z$, $w$을 삭제하고 그 위치에 $w$, $x+y$를 삽입한다.
  • 즉, $A_1, A_2, \cdots, x, y, z, w, \cdots, A_L$을 $A_1, A_2, \cdots, w, x+y, \cdots, A_L$로 바꾼다.

$N$개의 $0$과 $N$개의 $1$로 이루어진 길이 $2N$의 수열 $B$가 주어진다. 다음과 같은 쿼리를 적용할 때마다 수열 $B$가 좋은 수열인지 판별하여라.

  • $l\, r$: $l\le i\le r$인 모든 $i$에 대해 $B_i$를 반전시킨다. 즉, $B_i=1$이면 $0$으로, $B_i=0$이면 $1$로 바꾼다. 이때, $[l,r]$ 구간에서 $1$의 개수와 $0$의 개수는 같다.

입력

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

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

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

다음 $Q$개의 줄에 쿼리들의 정보가 주어지며, 각 줄에는 두 정수 $l$과 $r$이 공백으로 구분되어 주어진다.

출력

$Q+1$개의 줄에 걸쳐 문제의 정답을 출력한다. $i$번째 줄에는 주어진 쿼리를 순서대로 $i-1$번 적용했을 때 $B$가 좋은 수열이면 YES를, 그렇지 않다면 NO를 출력해야 한다.

제한

  • $2\le N\le 2\times 10^5$
  • $B_i\in\{0,1\}$ $(1\le i\le 2N)$
  • $\sum_{i=1}^{2N} B_i=N$
  • $0\le Q\le 2\times 10^5$
  • $1\le l\le r\le 2N$