전기
시간 제한2초메모리 제한1024 MB
각 멀티탭의 콘센트 수와 허용 전력, 그리고 각 기기의 소비 전력이 주어질 때 모든 기기를 연결할 수 있는지 판정하고 배선을 출력한다.
문제
한 시골 학교에서 정보과학을 가르치기로 했다. 우선 컴퓨터실을 만들기로 했는데, 학교에 그런 용도의 교실이 따로 없어서 수학 교실을 개조하기로 했다.
개의 기기를 샀다. 본체, 모니터, 프로젝터 등이다. 그런데 연결을 시작하려고 보니 교실에 전기 콘센트가 하나뿐이라는 사실이 드러났다.
해결책은 금방 찾았다. 멀티탭 개를 샀다. 그런데 기기와 멀티탭마다 특성이 달라서 연결 과정이 간단하지 않다. 멀티탭마다 꽂을 수 있는 콘센트 수 와 여기에 연결할 수 있는 기기들의 최대 총 전력 가 주어지고, 기기마다 소비 전력 가 주어진다.
이제 멀티탭을 사용해 기기를 연결하는 배선도를 만들어야 한다. 각 멀티탭에 직접든 다른 멀티탭을 거치든 연결된 기기들의 총 전력은 그 멀티탭의 를 넘지 않아야 하고, 그 멀티탭에 직접 꽂히는 기기와 다른 멀티탭의 개수는 를 넘지 않아야 한다. 또한 소방 안전 규칙에 따라 각 멀티탭에는 다른 멀티탭을 최대 하나만 꽂을 수 있다.
교실의 유일한 콘센트는 충분히 큰 전력을 감당할 수 있다고 본다. 즉 모든 기기를 연결해도 견딘다. 필요하다면 콘센트에 멀티탭이 아니라 기기를 직접 꽂을 수도 있다.
필요한 배선도를 찾는 프로그램을 작성하시오.
입력
첫째 줄에는 가진 멀티탭의 수 가 주어진다(). 다음 개 줄에는 멀티탭의 정보가 주어진다. 각 줄에는 두 정수 , 가 주어지며, 각각 멀티탭의 콘센트 수와 여기에 연결할 수 있는 기기들의 최대 총 전력이다(, ).
다음 줄에는 연결해야 하는 기기의 수 이 주어진다(). 마지막 줄에는 기기들의 소비 전력 이 주어진다().
출력
가진 멀티탭으로 모든 기기를 연결할 수 있으면 첫 줄에 Yes, 아니면 No를 출력한다.
답이 긍정적이면 이어서 배선도의 설명을 출력한다. 설명은 두 줄로 이루어진다. 첫째 줄은 멀티탭의 연결을 나타낸다. 각 멀티탭마다 그 멀티탭이 꽂힌 멀티탭의 번호를 출력한다. 교실의 유일한 콘센트에 꽂혀 있으면 0, 아예 사용하지 않으면 을 출력한다. 둘째 줄은 기기의 연결을 나타낸다. 각 기기마다 그 기기가 꽂힌 멀티탭의 번호를 출력한다. 기기를 콘센트에 직접 꽂아야 하면 0을 출력한다.
각 멀티탭에는 다른 멀티탭을 하나까지만 꽂을 수 있고, 멀티탭을 자기 자신에 꽂는 것은 허용되지 않는다. 어떤 멀티탭에 기기가 하나도 연결되지 않았다면(직접이든 다른 멀티탭을 거치든), 그 멀티탭도 어디에도 꽂혀 있어서는 안 된다. 또한 어떤 멀티탭이 콘센트에 연결되지 않았다면(직접이든 다른 멀티탭을 거치든), 그 멀티탭에도 아무것도 꽂혀 있어서는 안 된다.
멀티탭은 입력 파일에 나열된 순서대로 1부터 번호가 매겨진다. 멀티탭과 기기의 연결 설명은 입력 파일에 나열된 순서대로 출력해야 한다.