밥의 평균
시간 제한3초메모리 제한1024 MB
홀수 길이 부분배열마다 연속한 세 원소를 중앙값으로 합치는 연산을 반복해 남길 수 있는 최댓값을 구합니다.
문제
밥은 원소 개수가 홀수인 배열의 평균을 구하는 새로운 방법을 생각해 냈다. 배열의 길이가 1보다 큰 동안 다음 연산을 반복한다. 왼쪽 끝을 , 오른쪽 끝을 로 하는 길이 3의 구간을 임의로 고르고, 세 원소의 중앙값을 구한 뒤 세 원소를 중앙값 하나로 바꾼다. 세 원소의 중앙값은 그중 두 번째로 큰 원소이다. 예를 들어 의 중앙값은 이고, 의 중앙값은 이다.
배열 에서 , 를 고르면 의 중앙값은 이므로 배열은 가 된다. 이어서 , 을 고르면 의 중앙값은 이므로 배열은 가 된다.
결과는 구간을 어떻게 고르느냐에 따라 달라진다. 밥은 마지막에 남는 수가 가능한 한 가장 커지도록 구간을 고른다. 이렇게 얻은 수를 밥의 평균이라고 부른다.
원소가 개인 배열 에 대해 개의 질의에 답해야 한다. 번째 질의는 , 로 주어지며, 부분 배열 의 밥의 평균을 구한다. 모든 질의의 구간 길이는 홀수이다.
입력
첫째 줄에 배열의 크기 ()이 주어진다.
둘째 줄에 배열의 원소 () 개가 주어진다.
셋째 줄에 질의의 개수 ()가 주어진다.
이어지는 개의 줄에 두 정수 , ()가 주어진다. 은 홀수이다.
출력
번째 줄에 번째 질의의 답을 정수 하나로 출력한다.