[BOJ 25498] 핸들 뭘로 하지
View as PDF
Submit solution
Points:
3
Time limit:
1.0s
Memory limit:
1G
Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text
Baekjoon Online Judge를 비롯한 여러 온라인 채점 사이트에서는 각 유저를 고유한 ID로 구분한다. 이 ID는 핸들(Handle)이라고도 하며, 보통 여러 온라인 채점 사이트에서 동일하거나 비슷한 ID를 사용한다. 이러한 이유로 여러 사이트에서 활동하는 알고리즘 랭커들은 본명보다 핸들이 더 잘 알려지고는 한다.</p>
알고리즘 최정상을 꿈꾸는 효규는 깊은 고민에 빠져있다. 바로 핸들을 정하는 일이다. 적당히 멋있으면서도 의미 있는 핸들을 원하지만, 도저히 떠오르지 않는다. 그 모습을 지켜보던 상원이는 주머니에 있던 트리 하나를 효규에게 주며 핸들 정하는 방법을 제안했다.

- 트리는 $1$번부터 $N$번까지 총 $N$개의 정점으로 이뤄져 있으며, 각 정점에는 알파벳 소문자가 하나 적혀 있다.
- $1$번 정점에서 시작한다.
- 현재 정점에서 인접한 정점 중 아직 방문하지 않은 곳을 골라 이동한다. 이 과정을 더 이상 갈 수 없을 때까지 반복한다.
- 방문한 정점 순으로 적혀있는 알파벳을 이어 붙인다.
이렇게 얻어지는 문자열을 효규의 핸들로 정한다. 하지만 얻을 수 있는 문자열의 종류가 너무 많기 때문에 그 중 사전상 가장 마지막에 오는 문자열을 핸들로 정하기로 했다. 상원이가 효규에게 준 트리의 정보가 주어졌을 때, 효규가 정할 핸들이 무엇인지 알아보자.
입력 형식
첫 번째 줄에 $N$이 주어진다. $(1 \le N \le 500\,000)$</p>
두 번째 줄에 각 정점에 적혀 있는 알파벳 소문자가 공백 없이 순서대로 주어진다.
세 번째 줄부터 $N-1$개의 줄에 두 정수 $u$, $v$가 공백으로 구분되어 주어진다. $u$번 정점과 $v$번 정점 사이 간선을 나타낸다. $(1 \le u, v \le N, u \neq v)$
출력 형식
효규가 정할 핸들을 출력한다.
예제 입력 1
8
dfcjsasb
8 4
6 3
1 3
2 1
4 1
4 7
2 5
예제 출력 1
djs
예제 입력 2
7
aaaaaaa
1 2
1 3
3 4
3 5
5 6
5 7
예제 출력 2
aaaa
Comments