만드는 중입니다

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

순환 주기

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

요약
수직선의 위치마다 적힌 소문자 문자열이 주어질 때, 주기가 가장 긴 문자를 찾습니다.
난이도

쉬움10점 중 3점

유형
해시맵, 수학, 구현
정답자
아직 제출이 없습니다

문제

그림은 오프셋과 주기가 서로 다른 네 순환 aa, bb, cc, dd가 겹쳐진 모습을 나타낸다. aa는 3칸마다 나타나고 오프셋은 3이다. bb는 4칸마다 나타나고 오프셋은 2이다. cc는 7칸마다 나타나고 오프셋은 5이다. dd는 11칸마다 나타나고 오프셋은 4이다. 순환 dd의 주기가 가장 길다.

수직선 위의 위치마다 소문자 알파벳으로 이루어진 문자열이 하나씩 대응된다. 각 문자열의 알파벳 순서는 임의이다. 이 문자열들과 위치가 주어질 때, 가장 긴 주기를 나타내는 알파벳을 구하라. 수직선은 1에서 시작하며 길이는 65,536을 넘지 않는다. 등장하는 알파벳은 모두 최소 두 번 나타나며, 그 알파벳의 오프셋과 주기에 맞는 수직선 위의 모든 위치에 나타난다.

입력

첫 줄에는 수직선 위의 문자열 개수를 나타내는 정수 NN (2≤N≤65,5362 \leq N \leq 65{,}536)이 주어진다. 이후 각 줄은 알파벳이 하나 이상 대응되는 수직선 위의 위치를 나타낸다. 각 줄은 위치를 나타내는 양의 정수 PP (1≤P≤65,5361 \leq P \leq 65{,}536)로 시작하고, 공백 뒤에 그 위치의 소문자 알파벳 문자열이 이어진다. 한 문자열 안에서 같은 알파벳은 반복되지 않으며, 위치는 줄마다 엄격하게 증가한다.

출력

가장 긴 길이의 주기를 나타내는 알파벳을 하나 출력한다. 길이가 같은 순환이 여럿이면 처음 나타나는 위치가 가장 이른 순환을 택한다. 그래도 동점이면 해당 순환이 처음 발견된 문자열에서 먼저 나오는 알파벳을 택한다.

예제2

  1. 예제 1

    입력
    18
    2 b
    3 a
    4 d
    5 c
    6 ab
    9 a
    10 b
    12 ac
    14 b
    15 ad
    18 ab
    19 c
    21 a
    22 b
    24 a
    26 bcd
    27 a
    30 ab
    
    예상 출력
    d
    
  2. 예제 2

    입력
    4
    1 pz
    2 d
    4 zp
    5 d
    
    예상 출력
    z