페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#3402

알사탕 4s 512MB

문제

정올학교 인기교사 택쌤의 반에는 알사탕을 좋아하는 N명의 학생이 있다. 

택쌤은 우연히도, 이번 학기의 남은 수업 일수도 N일이 남았음을 깨달았다. 

이에 택썜은 1번 학생부터 돌아가면서, 매일매일 알사탕을 사오는게 어떻냐고 제안했다. 

그리하면 학생들이 각자 한 번씩 공평하게 맛있는 알사탕을 사게 되니 말이다. 학생들도 이에 동의했다.

문제는 매일마다 학생들의 용돈 상태가 제각각이어서, 

자신이 알사탕 당번인 날에 알사탕을 못 사오는 경우도 생긴다는 것이었다. 

그런 경우엔, 그 날 용돈 사정이 여유로운 다른 학생이 알사탕을 사온다. 

N일이 지나고 이번 학기가 끝나자, 택쌤은 번호 순서에 상관없이 

그날그날 알사탕을 사온 학생이 다르다는 것을 깨달았다. 

평소에 용돈을 아껴 써서 반 학생들에게 더 많이 베푼 학생이 있었는가 하면, 

여러분들처럼 평소에 모바일 게임에 현질을 열심히 하느라 반 학생들에게 하나도 베풀지 않은 학생도 있었다.

택쌤은 당번을 시작한 첫번째 날부터 N번째 날까지, 매일마다 알사탕을 사온 학생들의 번호를 모두 기록해 놓았다. 

어떤 기간 A번째 날부터 B번째 날까지, 그 기간 전체 일수의 절반을 초과한 기간 동안 어떤 한 학생이 알사탕 당번을 맡았다면, 

그 학생을 해당 기간의 기부천사라고 부르기로 했다.

알사탕 당번 기록과 M개의 기간이 주어졌을 때, 각 기간 동안의 기부천사를 조사하는 프로그램을 작성하라.  


입력

첫 줄에 택쌤 반의 학생의 수(즉, 남은 수업 일수)인 N과, 질문의 개수 M이 공백을 사이에 두고 주어진다. (1<=N,M<=500,000) 둘째 줄에, 1일째부터 N일째까지 알사탕을 사온 학생의 번호가 공백을 사이에 두고 주어진다. 학생의 번호는 1이상 N이하이다. 다음 M줄에 걸쳐, 기부천사를 조사하고자 하는 기간이 주어진다. A와 B가 공백을 사이에 두고 주어지며 1<=A<=B<=N이다. 15%의 입력에 있어서 1<=N,M<=7,000을 만족한다.

출력

M줄에 걸쳐, 각 질문에 대하여, 그 기간 동안 기부천사가 존재하면, 그 학생의 번호를 출력한다. 이 기간 동안 기부천사가 존재하지 않으면 0을 출력한다.

예제

7 5

1 1 3 2 3 4 3
1 3
1 4
3 7
1 7
6 6
1

0
3
0
4

출처

폴란드 정보올림피아드(POI) 2013/2014 Stage 1 Problem 4
로그인해야 코드를 작성할 수 있어요.