Cube219는 전투 시뮬레이션 게임을 즐겨한다. 이 게임에는 길이가 N인 공간에 일렬로 1번부터 N번까지 순서대로 병사들이 있다. i번째 병사는 a_i의 전투력을 가지고 있다. 전투력은 음수가 될 수도 있다.
Cube219는 Q번의 전투 시뮬레이션을 하려 한다. i번째 전투에는 l_i번째부터 r_i번째까지 연속된 구간을 선택하고, 이 구간을 \[l_i,⋯,k],\[k+1,⋯,r_i] 인 연속된 2개의 그룹으로 팀을 나누어 전투를 하려 한다. 팀의 전투력은 팀에 속한 병사들의 전투력의 합으로 결정된다.
Cube219는 전투가 치열하게 일어나는 것을 좋아해서, 두 그룹의 전투력 차이를 최소화하게 팀을 나누려고 한다. 다만 병사의 수가 너무 차이나는 것도 싫어서, 한 그룹의 크기가 전체 전투 구간의 32를 넘지 않도록 하려 한다. 위 조건을 만족하면서, 각 전투 시뮬레이션마다 팀의 전투력 차이의 최솟값을 구하시오.
첫 번째 줄에 구간의 길이 N이 정수로 주어진다. (3≤N≤300,000)
두 번째 줄에 N개의 정수 a_1,⋯,a_N이 공백으로 구분되어 주어진다. (−109≤a_i≤109) a_i는 i번째 병사의 전투력이다.
세 번째 줄에 전투 시뮬레이션 횟수 Q가 정수로 주어진다. (1≤Q≤300,000)
네 번째 줄부터는 Q개의 줄에 걸쳐 정수 l_i,r_i가 공백으로 구분되어 주어진다. (1≤l_i<r_i≤N; r_i−l_i+1은 3의 배수) l_i,r_i는 i번째 전투 시뮬레이션 구간의 왼쪽 끝과 오른쪽 끝 위치이다.
Q개의 줄에 각 전투 시뮬레이션마다 팀의 전투력 차이의 최솟값을 출력한다.