해야 할 일 목록은 언제나 존재합니다!
오늘 아침 보호자가 남겨 준 목록은 다음과 같습니다.
(하루 종일 인터넷만 하지 말고 텔레비전도 챙겨 보게 해 주는 보호자라니 다행입니다.)
보호자는 이 일들의 순서에 대해 다음과 같은 제약도 걸어 두었습니다.
위의 "할 일" 목록은 이제 다음과 같이 축약할 수 있습니다.
1,7
1,4
2,1
3,4
3,5
여기서 x,y는 번호가 x인 일을 번호가 y인 일보다 먼저 해야 함을 뜻합니다.
하루 동안 보호자는 추가 지시를 이메일로 보내옵니다. 원래의 "할 일" 목록과 추가 지시를 함께 사용하여, 일들을 완료할 수 있는 순서대로 출력하는 프로그램을 작성하세요. 만약 모든 일을 완료할 수 없다면, 이 일들을 완료할 방법이 없어 그냥 자러 간다는 내용을 출력해야 합니다.
추가 지시를 나타내는 숫자들이 한 줄에 하나씩 주어지며, 두 숫자가 한 쌍을 이룹니다. 각 쌍의 첫 번째 숫자 x와 두 번째 숫자 y는 번호가 x인 일을 번호가 y인 일보다 먼저 해야 함을 뜻하며, 위의 원래 목록에 추가됩니다. 입력은 숫자 쌍 0과 0으로 끝납니다. 추가 제약은 최대 10개입니다.
일들을 수행해야 하는 순서대로 한 줄에 공백 하나로 구분하여 출력하세요. 모든 일을 완료할 수 없다면 다음을 그대로 출력합니다.
Cannot complete these tasks. Going to bed.
여러 순서가 가능한 경우 다음 규칙으로 순서를 정합니다. 동시에 수행할 수 있는 일이 여러 개라면, 그중 번호가 가장 작은 일을 먼저 수행합니다.