과제 해결하기
시간 제한2.5초메모리 제한1024 MB
N개의 시간 구간을 M명의 학생에게 배정하되 한 학생이 맡은 두 구간이 겹치지 않게 하면서 해결하는 과제 수를 최대화한다.
문제
오늘 송죽학사에 개의 과제가 올라올 예정이다. 종영이와 친구들은 그다지 과제를 하고 싶지 않으므로 과제들을 분담해서 해결하기로 했다.
과제 는 시각 에 올라와 시각 까지 제출할 수 있는데, 학생들의 학습능력이 그다지 뛰어나지 않아 제출이 가능한 시간 내내 그 과제를 해결해야 한다. 또 한 학생이 동시에 두 과제를 해결할 수 없으므로 두 과제 와 를 한 학생이 해결하려면 또는 를 만족해야 한다. 또 학생들은 과제에 그다지 큰 관심이 없으므로 한 학생당 최대 두 개의 과제를 해결할 것이다.
명의 학생이 최대한 많은 과제를 해결하고자 할 때, 학생들 각각이 해결해야 할 과제를 정해주자. 가능한 경우가 여럿 있을 경우 어떤 방법을 선택하여도 좋다.
입력
첫 줄에 정수 과 이 주어진다.
이후 개의 줄에 걸쳐 정수 와 가 주어진다.
출력
개의 수를 공백으로 구분하여 출력한다. 번째 수로는 과제 를 해결할 학생을 출력한다. 과제 를 해결할 학생이 없다면 대신 0을 출력한다.