만드는 중입니다

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

돈 요구하기

면접 대비

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

요약
각 사람이 돈을 요청하는 두 사람을 주어졌을 때, 두 요청 대상이 모두 다른 사람에게 이미 돈을 준 상태가 될 수 있는 사람을 찾습니다.
난이도

보통10점 중 5점

유형
그래프, DFS, BFS
정답자
아직 제출이 없습니다

문제

국제 사기 방지 위원회는 한 마을에서 피라미드 사기가 가져올 수 있는 영향을 조사하고 있다. 사기 방식은 다음과 같다. 어떤 사람이 다른 사람에게 $1을 요청하고, 그 사람에게 다른 두 사람에게 각각 $1씩 요청하게 하며, 그 두 사람도 똑같이 두 사람에게 요청하게 한다. 피해자는 자신이 $1을 벌 것이라고 믿는다. 세상의 사람 수는 유한하므로 모든 사람이 이 방식으로 돈을 벌 수는 없고, 이것이 사기이다.

마을의 NN명은 이 사기에 넘어갈 수 있다. 각 사람은 $1을 주고, 나중에 다른 두 사람에게 돈을 요청하려고 한다. 다만 각 사람은 한 번만 참여한다. 다시 돈을 요청받으면 돈을 주지도 않고 누구에게도 요청하지 않는다. 돈을 요청받은 사람은 즉시 돈을 주지만, 다른 두 사람에게 요청하기까지 시간을 둘 수 있다. 사기는 마을 밖의 누군가가 마을 사람에게 돈을 요청하면서 시작된다. 이것이 마을 안에서 연쇄적인 요청을 일으킨다.

예를 들어 아래 그림은 다섯 명이 사는 마을이다. AA에서 BB로 向하는 화살표는 AA가 BB에게 돈을 요청한다는 뜻이다.

이 예에서 BB는 돈을 잃을 수 있다. 다음 시나리오를 보자.

  1. 마을 밖의 누군가가 AA에게 돈을 요청한다.
  2. AA가 BB에게 돈을 요청한다.
  3. AA가 CC에게 돈을 요청한다.
  4. CC가 DD에게 돈을 요청한다.
  5. BB가 CC에게 돈을 요청한다.
  6. BB가 DD에게 돈을 요청한다.

BB가 CC와 DD에게 돈을 요청할 때, 두 사람은 이미 다른 사람에게 돈을 주었으므로 BB에게 주지 않는다.

마을의 각 사람이 누구에게 돈을 요청하는지 알고 있다. 마을에서 돈을 잃을 수 있는 사람을 구하라.

입력

첫 줄에 마을 사람 수 NN (3≤N≤10003 \le N \le 1000)이 주어진다. 각 사람은 1부터 NN까지의 서로 다른 정수로 구분된다. i=1,2,…,Ni = 1, 2, \dots, N에 대해, 다음 NN개 줄의 ii번째 줄에는 두 정수 XiX_i, YiY_i (1≤Xi,Yi≤N1 \le X_i, Y_i \le N, Xi,Yi≠iX_i, Y_i \ne i, Xi≠YiX_i \ne Y_i)가 주어지며, 이는 사람 ii가 사람 XiX_i와 사람 YiY_i에게 돈을 요청한다는 뜻이다.

출력

길이가 NN인 문자열을 한 줄에 출력한다. ii번째 문자는 사람 ii가 돈을 잃을 수 있으면 대문자 Y, 그렇지 않으면 대문자 N이다.

예제2

  1. 예제 1

    입력
    5
    2 3
    3 4
    4 5
    5 1
    1 2
    
    예상 출력
    YYYYY
    
  2. 예제 2

    입력
    4
    2 3
    3 4
    2 4
    2 3
    
    예상 출력
    NYYY