시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 512 MB 45 19 14 41.176%

문제

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

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

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

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

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

가희는 1초일 때 부터 T초일 때 까지, 스케쥴러가 선택한 프로세스의 id를 알고 있습니다. 스케쥴러가 선택한 프로세스들의 초기 정보를 출력해 주세요.

입력

첫 번째 줄에 T가 주어집니다.

두 번째 줄에 1초부터 T초일 때 까지 스케쥴러가 선택한 프로세스의 id가 공백으로 구분되어 주어집니다.

출력

첫 번째 줄에 스케쥴러가 선택한 프로세스의 개수 N를 출력해 주세요.

스케쥴러가 선택하지 않은 프로세스 id를 출력한 경우에는 오답 처리됨에 주의해 주세요.

다음에 각 줄마다, 프로세스의 초기 정보인 프로세스 id값인 Ai, 프로세스를 완료하는 데 걸리는 시간 Bi, 우선 순위 Ci를 공백으로 구분에서 출력해 주세요.

이 때, 프로세스 id값인 Ai 오름차순으로 출력해야 합니다.

조건에 맞는 답이 여러 가지인 경우, 아무 것이나 출력해도 정답으로 인정됩니다. 

제한

  • 1 ≤ 문제에서 주어지는 시간 ≤ 105​​​​, 1 ≤ 문제에서 주어지는 프로세스들의 id ≤ 106
  • 1 ≤ 출력해야 하는 프로세스들의 정보 ≤ 106
  • 가능한 경우만 입력으로 주어집니다.
  • 주어지는 값들은 모두 자연수입니다.

예제 입력 1

8
1 2 1 2 1 2 1 2

예제 출력 1

2
1 4 1
2 4 1

출처

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