라우터 1
시간 제한2초메모리 제한512 MB
N*N이 P_lim을 넘는지에 따라 내부 노드 하나를 쓰는 별 모양 라우터나 완전 이분 라우터를 출력한다.
문제
헨리와 헤티는 네트워크 장비 회사에 입사했다. 첫 프로젝트는 새 라우터 Connect Ethernet Operating Interface를 만드는 일이다. 라우터는 다음으로 이루어진다.
- 입력 노드 개. 번호는 번부터 번까지다.
- 출력 노드 개. 번호는 번부터 번까지다.
- 내부 노드 개. 번호는 번부터 번까지다.
- 서로 다른 두 노드를 잇는 단방향 직접 연결 개.
노드 가 노드 로 데이터를 보낼 수 있다는 것은, 즉 가 에서 데이터를 받을 수 있다는 것은 다음 중 하나가 성립한다는 뜻이다.
- 이다.
- 가 어떤 노드 로 데이터를 보낼 수 있고, 에서 로 가는 직접 연결이 있다.
가 로 데이터를 보낼 수 있고 이면, 에서 로 가는 데이터 경로는 , , 를 만족하는 직접 연결의 집합 이다.
라우터는 다음을 모두 만족할 때 제대로 동작한다.
- 모든 입력 노드가 모든 출력 노드로 데이터를 보낼 수 있다.
- 입력 노드는 자기 자신에서만 데이터를 받는다.
- 출력 노드는 자기 자신으로만 데이터를 보낸다.
- 인 두 노드 , 에서 가 로 데이터를 보낼 수 있으면, 는 로 데이터를 보낼 수 없다.
- 인 두 노드 , 에서 가 로 데이터를 보낼 수 있으면, 에서 로 가는 데이터 경로는 유일하다. 특히 두 노드를 잇는 직접 연결은 많아야 한 개다.
노드 를 작동시키는 데 드는 전력은 다. 는 로 데이터를 보낼 수 있는 입력 노드의 개수, 는 에서 데이터를 받을 수 있는 출력 노드의 개수다. 전체 노드 수를 라고 하면 라우터의 최대 전력은 다.
, , 이 주어진다. 제대로 동작하고, 입력 노드와 출력 노드가 각각 개이며, 직접 연결을 개 이하로 쓰고, 이며, 노드를 모두 합쳐 개 이하로 쓰는 라우터를 만들어라. 조건을 만족하는 라우터는 여러 가지라서 출력해야 하는 라우터 하나를 출력 항목에서 정한다.
입력
첫째 줄에 세 정수 , , 이 공백으로 구분되어 주어진다. 은 입력 노드와 출력 노드의 개수, 은 쓸 수 있는 직접 연결의 최대 개수, 은 라우터가 쓸 수 있는 최대 전력이다. (, , )
이고, 출력 항목에서 정한 라우터가 직접 연결을 개 이하로 쓰는 입력만 주어진다.
출력
아래 규칙으로 정해지는 라우터를 출력한다.
이면 내부 노드가 하나인 라우터를 출력한다. 이 라우터는 노드가 개, 직접 연결이 개다. 먼저 순서로 연결 을 출력하고, 이어서 순서로 연결 를 출력한다.
그렇지 않으면 내부 노드가 없는 라우터를 출력한다. 이 라우터는 노드가 개, 직접 연결이 개다. 모든 쌍의 연결 를 가 커지는 순서로, 가 같으면 가 커지는 순서로 출력한다.
첫째 줄에 과 을 공백으로 구분해 출력한다. 이어지는 개의 줄에는 각각 두 정수 와 를 출력한다. 노드 에서 노드 로 가는 직접 연결을 만들었다는 뜻이다.