Jabber 네트워크
시간 제한2초메모리 제한1024 MB
차수가 3 이하인 트리에서 케이블을 입력 순서대로 제거한 뒤, 통신 거리 합이 최소가 되는 새 케이블 쌍을 사전순으로 가장 작은 것으로 고르는 문제입니다.
문제
Dave는 은퇴 후에도 지역 커뮤니티의 컴퓨터 네트워크를 계속 관리하는 옛 컴퓨터 과학 교수이다. 구성원마다 컴퓨터가 한 대씩 있고, 각 컴퓨터에는 네트워크 카드가 세 개씩 있다. 일부 카드는 케이블로 연결되어 있다. 네트워크는 하나로 이어져 있으며, 자원을 아끼는 오랜 관례에 따라 케이블 수는 가능한 한 적게 유지된다.
구성원들의 통신 습관은 꾸준하다. 임의의 두 컴퓨터 사이에 초당 주고받는 패킷 수는 정확히 알려져 있다. 다만 네트워크는 오래전에 구축되었으므로 지금의 연결이 최적이라고 할 수 없다. 두 컴퓨터 , 에 대해 는 케이블 수로 잰 두 컴퓨터 사이의 최단 경로 길이이고, 는 에서 로 초당 전송해야 하는 패킷 수이다. 통신 부하(commutation stress)는 인 모든 쌍에 대해 를 더한 값이며, Dave는 이 값을 최소로 만들고자 한다.
케이블이 낡아 이제 교체할 때가 되었다. Dave는 이 기회에 통신 부하가 줄어들도록 네트워크도 함께 개선하려 한다. 다만 한꺼번에 많이 바꾸면 구성원들이 불편을 겪을 수 있으므로, 다음 절차로 작업한다. 기존 케이블을 입력 순서대로 하나씩 처리하며, 각 케이블마다 다음을 수행한다.
- 기존 케이블 하나를 제거한다.
- 네트워크가 다시 연결되도록 새 케이블 하나를 추가한다. 이때 결과의 통신 부하가 최소가 되도록 연결할 두 컴퓨터를 고른다.
- 같은 통신 부하를 만드는 선택이 여럿이면 번호가 작은 쪽을 고른다. 즉 와 의 통신 부하가 같을 때, 이거나 이고 이면 를 택한다.
각 컴퓨터의 네트워크 카드는 세 개뿐이므로, 이미 세 대와 연결된 컴퓨터에는 케이블을 하나 더 연결할 수 없다. 그래도 연결할 두 컴퓨터는 항상 찾을 수 있다. 예를 들어 방금 분리된 두 컴퓨터를 고를 수 있다.
그림 J.1: 재연결 한 번의 과정 (첫 번째 작업)
입력
첫 줄에 정수 이 주어진다. 컴퓨터의 수이다.
다음 개 줄에는 각각 정수 , 가 주어진다. 이는 번째 기존 케이블이 연결한 두 컴퓨터이다. 케이블은 입력 순서대로 제거되고 교체된다. 기존 케이블만으로 모든 컴퓨터가 서로 연결되어 있으며, 어떤 컴퓨터도 세 대보다 많은 컴퓨터와 연결되어 있지 않다.
다음 줄에는 정수 가 주어진다. 서로 데이터를 주고받는 컴퓨터 쌍의 수이다. 다음 개 줄에는 각각 정수 , , 가 주어진다. 와 는 서로 데이터를 주고받는 두 컴퓨터이고, 는 초당 패킷 수이다.
출력
개 줄을 출력한다. 번째 줄에는 단계에서 새 케이블로 연결한 두 컴퓨터 , 를 출력한다. 동점을 깨는 규칙 때문에 정답은 하나로 정해진다.


