키노마니
면접 대비시간 제한4초메모리 제한1024 MB
N개의 상영 시간 구간이 주어질 때, 겹치지 않게 영화를 나눠 보는 최소 인원을 구하고 각 사람이 볼 영화 번호를 출력합니다.
문제
바이테크는 친구들과 함께 영화 동호회를 만들었다. 회원들은 극장에서 여러 영화를 보고, 모여서 본 영화를 서로에게 이야기한다. 이야기가 매우 자세해서 들은 영화는 실제로 본 것과 거의 같다.
곧 '은빛 지평선' 영화제가 열린다. 회원들을 영화제에 보내 영화를 모두 나눠 보게 해야 한다. 영화제에서 각 영화는 한 번만, 정해진 시간 구간에 상영된다. 영화를 봤다고 인정받으려면 처음부터 끝까지 전부 봐야 한다. 회원은 한 순간에 영화 한 편만 볼 수 있지만, 한 영화가 끝나는 순간 다른 영화를 시작할 수 있다. 티켓이 비싸서 동호회는 가능한 한 적은 수의 회원만 보내려고 한다.
영화 수와 각 영화의 상영 시간 구간을 입력받아, 영화제에 보내야 할 회원의 최소 인원을 구하고 그 결과를 표준 출력에 출력하는 프로그램을 작성하라.
입력
첫 줄에는 영화제에서 상영되는 영화 수 이 자연수로 주어진다 (). 이어지는 줄에는 영화마다 한 줄씩 정보가 주어진다. 각 줄에는 자연수 , ()가 한 칸 띄어 적혀 있다. 번째 영화는 영화제의 분부터 분까지 상영된다.
출력
첫 줄에는 모든 영화를 보기 위해 필요한 최소 회원 수 을 출력한다. 이어서 줄에 걸쳐 회원이 영화를 보는 방법을 하나씩 출력한다. 번째 줄에는 번째 회원이 볼 영화 수 를 쓰고, 한 칸 띄운 뒤 그 회원이 보는 영화 번호 부터 까지를 한 칸씩 띄워 쓴다. 답이 여러 가지라면 그중 아무 방법이나 출력하면 된다.