수열과 쿼리 0

1과 -1로 이루어진 수열에서 각 질의 구간 [i,j] 안에 합이 0인 가장 긴 연속 부분수열의 길이를 구하고, 없으면 0을 출력한다.

어려움9세그먼트 트리누적 합분할 정복동적 계획법아직 제출이 없습니다시간 제한2.5초메모리 제한512 MB

문제

111-1로만 이루어진 길이 NN의 수열 A1,A2,,ANA_1, A_2, \dots, A_N이 주어진다. 아래 쿼리를 처리하는 프로그램을 작성하시오.

  • i j: Ai,Ai+1,,AjA_i, A_{i+1}, \dots, A_j 안에 들어 있는 연속 부분 수열 중 원소의 합이 00인 것을 찾고, 그중 가장 긴 것의 길이를 출력한다. 합이 00인 연속 부분 수열이 하나도 없으면 00을 출력한다.

입력

첫째 줄에 수열의 크기 NN (1N1000001 \le N \le 100\,000)이 주어진다.

둘째 줄에 A1,A2,,ANA_1, A_2, \dots, A_N이 공백으로 구분되어 주어진다. (AiA_i11 또는 1-1)

셋째 줄에 쿼리의 개수 MM (1M1000001 \le M \le 100\,000)이 주어진다.

넷째 줄부터 MM개의 줄에 쿼리가 한 줄에 하나씩 주어진다. 각 줄에는 두 정수 ii, jj (1ijN1 \le i \le j \le N)가 있다.

출력

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