만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

핸들 뭘로 하지

면접 대비

시간 제한1초메모리 제한1024 MB

요약
정점마다 소문자가 적힌 트리에서 1번 정점부터 리프까지 이동하며 만들 수 있는 문자열 중 사전순으로 가장 뒤에 오는 문자열을 구합니다.
난이도

보통10점 중 4점

유형
트리, BFS, 그리디
정답자
아직 제출이 없습니다

문제

온라인 채점 사이트에서는 각 유저를 고유한 ID로 구분한다. 이 ID는 핸들(Handle)이라고도 하며, 보통 여러 사이트에서 동일하거나 비슷한 ID를 쓴다. 그래서 여러 사이트에서 활동하는 알고리즘 랭커는 본명보다 핸들로 더 잘 알려지곤 한다.

알고리즘 최정상을 꿈꾸는 효규는 깊은 고민에 빠져 있다. 바로 핸들을 정하는 일이다. 적당히 멋있으면서도 의미 있는 핸들을 원하지만, 도저히 떠오르지 않는다. 그 모습을 지켜보던 상원이는 주머니에 있던 트리 하나를 효규에게 주며 핸들 정하는 방법을 제안했다.

  1. 트리는 11번부터 NN번까지 총 NN개의 정점으로 이뤄져 있으며, 각 정점에는 알파벳 소문자가 하나 적혀 있다.
  2. 11번 정점에서 시작한다.
  3. 현재 정점에서 인접한 정점 중 아직 방문하지 않은 곳을 골라 이동한다. 이 과정을 더 이상 갈 수 없을 때까지 반복한다.
  4. 방문한 정점 순으로 적혀 있는 알파벳을 이어 붙인다.

이렇게 얻어지는 문자열을 효규의 핸들로 정한다. 다만 얻을 수 있는 문자열의 종류가 너무 많아서, 그중 사전순으로 가장 마지막에 오는 문자열을 핸들로 정하기로 했다. 상원이가 효규에게 준 트리의 정보가 주어졌을 때, 효규가 정할 핸들이 무엇인지 알아보자.

입력

첫 번째 줄에 NN이 주어진다. (1≤N≤500 000)(1 \le N \le 500\,000)

두 번째 줄에 각 정점에 적혀 있는 알파벳 소문자가 공백 없이 순서대로 주어진다.

세 번째 줄부터 N−1N-1개의 줄에 두 정수 uu, vv가 공백으로 구분되어 주어진다. uu번 정점과 vv번 정점 사이의 간선을 나타낸다. (1≤u,v≤N,u≠v)(1 \le u, v \le N, u \neq v)

출력

효규가 정할 핸들을 출력한다.

예제2

  1. 예제 1

    입력
    8
    dfcjsasb
    8 4
    6 3
    1 3
    2 1
    4 1
    4 7
    2 5
    
    예상 출력
    djs
    
  2. 예제 2

    입력
    7
    aaaaaaa
    1 2
    1 3
    3 4
    3 5
    5 6
    5 7
    
    예상 출력
    aaaa