N*N이 P_lim을 넘는지에 따라 내부 노드 하나를 쓰는 별 모양 라우터나 완전 이분 라우터를 출력한다.
쉬움3그래프구현시뮬레이션아직 제출이 없습니다시간 제한2초메모리 제한512 MB헨리와 헤티는 네트워크 장비 회사에 입사했다. 첫 프로젝트는 새 라우터 Connect Ethernet Operating Interface를 만드는 일이다. 라우터는 다음으로 이루어진다.
노드 X가 노드 Y로 데이터를 보낼 수 있다는 것은, 즉 Y가 X에서 데이터를 받을 수 있다는 것은 다음 중 하나가 성립한다는 뜻이다.
X가 Y로 데이터를 보낼 수 있고 X=Y이면, X에서 Y로 가는 데이터 경로는 L≥2, A1=X, AL=Y를 만족하는 직접 연결의 집합 {(A1,A2),(A2,A3),…,(AL−1,AL)}이다.
라우터는 다음을 모두 만족할 때 제대로 동작한다.
노드 X를 작동시키는 데 드는 전력은 PX=INX×OUTX다. INX는 X로 데이터를 보낼 수 있는 입력 노드의 개수, OUTX는 X에서 데이터를 받을 수 있는 출력 노드의 개수다. 전체 노드 수를 Ntot=2N+K라고 하면 라우터의 최대 전력은 Pmax=max(P1,P2,…,PNtot)다.
N, Mlim, Plim이 주어진다. 제대로 동작하고, 입력 노드와 출력 노드가 각각 N개이며, 직접 연결을 Mlim개 이하로 쓰고, Pmax≤Plim이며, 노드를 모두 합쳐 500000개 이하로 쓰는 라우터를 만들어라. 조건을 만족하는 라우터는 여러 가지라서 출력해야 하는 라우터 하나를 출력 항목에서 정한다.
첫째 줄에 세 정수 N, Mlim, Plim이 공백으로 구분되어 주어진다. N은 입력 노드와 출력 노드의 개수, Mlim은 쓸 수 있는 직접 연결의 최대 개수, Plim은 라우터가 쓸 수 있는 최대 전력이다. (1≤N≤1000, 1≤Mlim≤106, 1≤Plim≤106)
N≤Plim이고, 출력 항목에서 정한 라우터가 직접 연결을 Mlim개 이하로 쓰는 입력만 주어진다.
아래 규칙으로 정해지는 라우터를 출력한다.
N×N≤Plim이면 내부 노드가 하나인 라우터를 출력한다. 이 라우터는 노드가 Ntot=2N+1개, 직접 연결이 M=2N개다. 먼저 i=1,2,…,N 순서로 연결 i→2N+1을 출력하고, 이어서 j=1,2,…,N 순서로 연결 2N+1→N+j를 출력한다.
그렇지 않으면 내부 노드가 없는 라우터를 출력한다. 이 라우터는 노드가 Ntot=2N개, 직접 연결이 M=N×N개다. 모든 (i,j) 쌍의 연결 i→N+j를 i가 커지는 순서로, i가 같으면 j가 커지는 순서로 출력한다.
첫째 줄에 Ntot과 M을 공백으로 구분해 출력한다. 이어지는 M개의 줄에는 각각 두 정수 X와 Y를 출력한다. 노드 X에서 노드 Y로 가는 직접 연결을 만들었다는 뜻이다.