간선 양 끝 라벨의 차이를 보존하는 동형 사상이 존재하는 라벨 트리끼리 묶어 각 그룹의 크기를 출력한다.
어려움8트리해시맵DFS정렬아직 제출이 없습니다시간 제한2초메모리 제한512 MB트리 T=(V,E)는 사이클이 없는 연결 그래프다. 여기서 V={v1,v2,…,vn}은 정점 집합이고 E={e1,e2,…,en−1}은 간선 집합이다. 라벨이 붙은 트리는 정점마다 서로 다른 정수 하나가 붙어 있는 트리다. 즉 일대일 함수 mT:V→Z가 하나 주어진다.
u,v∈V에 대해 dT(u,v)=mT(u)−mT(v)로 정의한다. 라벨이 붙은 두 트리 T1=(V1,E1)과 T2=(V2,E2)가 다음 세 조건을 모두 만족하면 서로 닮았다고 한다.

그림 1: 서로 닮은 트리 T1과 T2.
그림 1의 두 트리는 이 정의에 따라 닮았고, f는 그림에 그려진 대응이다. 예를 들어 dT1(v1,v2)=1−9=−8=9−17=dT2(v4,v5)이고, dT1(v2,v4)=9−6=3=17−14=dT2(v5,v1)이고, dT1(v2,v3)=9−7=2=17−15=dT2(v5,v3)이다.
라벨이 붙은 트리 d개가 주어진다. 닮음은 동치관계이므로 트리는 서로 닮은 것끼리 그룹으로 나뉜다. 각 그룹의 크기를 구하라.
첫 줄에 라벨이 붙은 트리의 개수 d가 주어진다 (1≤d≤100). 이어서 트리를 하나씩 두 줄로 나타낸다.
트리의 첫 줄에는 그 트리의 간선이 모두 놓인다. 간선 하나를 양 끝 정점의 번호 두 개로 나타내므로, 정점이 n개인 트리에서는 이 줄에 정수가 2(n−1)개 놓인다. 정점 번호는 1부터 n까지다. n을 따로 주지 않으므로 이 줄에 놓인 정수의 개수로 알아내야 한다. 트리의 두 번째 줄에는 정점 v1,v2,…,vn의 라벨 m(v1),m(v2),…,m(vn)이 이 순서로 주어진다.
2≤n≤70000이고 −100000<m(vi)<100000이다. 한 트리 안의 라벨은 모두 다르다.
각 그룹의 크기를 작은 것부터 차례로 한 줄에 공백으로 구분해 출력한다. 같은 크기가 여러 번 나올 수 있다. 어떤 트리와도 닮지 않은 트리는 크기가 1인 그룹이 되고, 출력한 수의 합은 d다.