시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
3.5 초 512 MB 35 12 10 55.556%

문제

가희는 스케쥴러를 구현하라는 과제를 받았습니다. 스케쥴러가 실행시킬 프로세스를 선택하는 기준은 아래와 같습니다.

  • 우선 순위 값이 제일 큰 프로세스
  • 우선 순위 값이 제일 큰 프로세스가 여러 개라면, id가 가장 작은 프로세스

가희가 만든 스케쥴러는 다음 알고리즘으로 실행됩니다.

  1. 실행시킬 프로세스를 기준에 따라 선택합니다. 선택된 프로세스의 idids라 합니다. ids를 실행시킵니다.
  2. 1초가 지난 후, 프로세스 idids인 프로세스를 제외한 나머지 프로세스들의 우선 순위가 1 상승합니다. 프로세스 idid인 프로세스의 실행을 마치는 데 필요한 시간은 1 감소합니다.
  3. 실행 시간이 남은 프로세스가 있다면 1로 돌아가고, 그렇지 않으면 종료합니다.

동시에 실행되는 프로세스는 1개이고, 1초일 때 가희가 만든 스케쥴러는 최초로 선택한 프로세스를 실행시키는 작업을 합니다.

가희는 t초일 때, 스케쥴러가 어떤 프로세스를 선택하는지 알고 싶습니다. 가희를 도와주세요. 

입력

첫 번째 줄에 Q, n이 주어집니다.

두 번째 줄 부터 n+1번째 줄까지 프로세스에 대한 정보 Ai, Bi, Ci가 공백으로 구분되어 주어집니다.

이것은 i번째 process의 idAi이고, 프로세스 id가 실행을 마치는 데 필요한 시간이 Bi초이고, 초기 우선 순위가 Ci임을 의미합니다.

n+2번째 줄부터 n+1+Q번째 줄까지 문제 Q개에 대한 정보가 아래와 같이 주어집니다.

Tc

TcTc 초일 때, 가희가 만든 스케쥴러가 선택한 프로세스 id 값이 어떤 것인지 묻는 문제를 의미합니다.

출력

문제에 대한 답을 Q개의 줄에 출력합니다.

제한

  • 1 ≤ n ≤ 105
  • 1 ≤ Q ≤ 50
  • 1 ≤ Ai, Bi, Ci ≤ 1012
  • 1 ≤ 문제에서 주어지는 Tc값 ≤ min(1017, 프로세스가 실행을 마치는 데 필요한 시간의 총합)

예제 입력 1

5 2
1 5 1
2 5 1
1
3
5
7
10

예제 출력 1

1
1
1
1
2

예제 입력 2

5 2
1 5 1000000
2 10000000000 1
1
2
3
1000
10000000000

예제 출력 2

1
1
1
2
2

출처

Contest > 가희와 함께 하는 코딩 테스트 > 가희와 함께 하는 1회 코딩 테스트 8번