아이들의 소원

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

요약
각 아이가 최대 두 명의 이웃을 원할 때, 모든 소원을 만족하도록 아이들을 원형으로 배치할 수 있는지 판정한다.
난이도

보통10점 중 7점

유형
그래프, 유니온 파인드, 구현, 수학
정답자
아직 제출이 없습니다

문제

케빈은 아이입니다. 케빈은 학교에서 여러 아이들과 함께 점심을 먹습니다. 아이들은 밖으로 나가 땅에 앉아 점심을 먹곤 합니다. 아이들은 큰 원을 만들어 앉는 것을 좋아하는데, 이 원에서 각 아이는 정확히 두 명의 이웃(왼쪽 한 명, 오른쪽 한 명)을 가집니다. 그런데 어떤 아이들은 특정한 다른 아이 옆에 앉고 싶어 하기 때문에, 선생님이 원을 배치하는 데 어려움을 겪을 때가 있습니다. 원 안에서 각 아이의 이웃은 두 명뿐이므로, 한 아이는 최대 두 명의 다른 아이 옆에 앉기를 소원할 수 있습니다. 선생님은 모든 아이의 소원을 만족시키도록 원을 배치하는 것이 가능한지 알고 싶어 합니다. 모든 아이의 소원이 만족되도록 아이들을 하나의 원으로 배치할 수 있는지 판별하세요.

입력

입력은 여러 개의 테스트 케이스로 이루어집니다. 각 테스트 케이스는 여러 줄에 걸쳐 주어집니다.

각 테스트 케이스의 첫 줄에는 두 정수 KK와 WW가 주어집니다. KK는 아이의 수(3≤K≤1093 \le K \le 10^9)를, WW는 소원의 수(0≤W≤1050 \le W \le 10^5)를 나타냅니다. 아이들은 11부터 KK까지의 번호로 구분됩니다. 이어지는 WW개의 줄에는 각각 서로 다른 두 정수 AA와 BB(1≤A,B≤K1 \le A, B \le K, A≠BA \ne B)로 하나의 소원이 주어지며, 이는 아이 AA가 아이 BB의 옆에 앉고 싶어 함을 뜻합니다. 각 아이가 하는 소원은 최대 두 개입니다.

마지막 테스트 케이스 다음에는 두 개의 00이 적힌 줄이 옵니다.

출력

각 테스트 케이스마다, 모든 아이의 소원을 만족시키도록 원을 배치할 수 있으면 대문자 'Y'를, 그렇지 않으면 대문자 'N'을 한 줄에 출력합니다.

예제3

  1. 예제 1

    입력
    4 3
    2 3
    1 3
    2 1
    1000000000 0
    3 6
    3 2
    2 1
    1 2
    1 3
    2 3
    3 1
    0 0
    
    예상 출력
    N
    Y
    Y
    
  2. 예제 2

    입력
    5 1
    1 2
    0 0
    
    예상 출력
    Y
    
  3. 예제 3

    입력
    4 3
    1 2
    2 3
    3 4
    0 0
    
    예상 출력
    Y