아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

신문

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

요약
연결된 무방향 그래프에서 브랑코가 간선을 따라 움직일 때 앤키카가 반드시 잡을 수 있는지 판별하고, 가능하면 최소 길이의 추측 순서를 출력합니다.
난이도

어려움10점 중 8점

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

문제

크로아티아 아이들 사이에서 인기 있는 놀이 노래 "Ulovi me, ulovi me, kupit ću ti novine!"는 나를 잡으면 신문을 사 줄게라는 뜻이다.

안키차와 브랑코는 방향이 없고 연결된 그래프에서 술래잡기를 한다. 브랑코는 그래프 위를 돌아다니고, 안키차는 그를 잡으려 한다. 게임은 턴 단위로 진행되며, 한 턴은 다음 두 단계로 이루어진다.

  • 안키차가 브랑코의 위치를 추측한다. 그녀는 특정 노드 하나를 골라 브랑코가 지금 거기에 있다고 추측한다. 추측이 맞으면 브랑코는 잡히고 게임이 끝난다. 틀리면,
  • 브랑코가 현재 위치에 연결된 간선 하나를 따라 이동한다. 그는 이웃한 노드 중 하나로 옮겨 간다. 브랑코는 제자리에 머무를 수 없다.

그래프가 주어졌을 때, 브랑코가 어떻게 움직이든, 어디서 출발하든 항상 그를 잡는 유한한 전략이 안키차에게 있는지 판단하라.

형식적으로 안키차의 전략은 배열 A=(a1,a2,…,ak)A = (a_1, a_2, \dots, a_k)로 나타낸다. 여기서 aia_i는 i번째 턴에서 그녀가 하는 추측이며, 브랑코가 노드 aia_i에 있다고 추측한다는 뜻이다. 브랑코의 이동은 배열 B=(b1,b2,…,bk)B = (b_1, b_2, \dots, b_k)로 나타낸다. 여기서 bib_i는 i번째 턴 직전에 브랑코가 있는 노드이다. 연속한 두 원소 bib_i와 bi+1b_{i+1} (1≤i<k1 \le i < k) 사이에는 두 노드를 잇는 간선이 그래프에 있어야 한다. 배열 AA에는 이런 제약이 없다.

안키차의 전략이 성공적이라는 것은, 즉 최대 kk 턴 안에 브랑코를 잡는다는 것은, 길이가 kk인 유효한 배열 BB마다 ai=bia_i = b_i를 만족하는 ii (1≤i≤k1 \le i \le k)가 존재한다는 뜻이다.

그런 전략이 존재하면 kk를 최소로 하는 전략을 찾아라.

성공하지만 최적은 아닌 전략(즉 kk가 최소가 아닌 전략)을 제시하면 부분 점수를 받을 수 있다. 자세한 내용은 채점 절을 참고하라.

입력

첫 번째 줄에 그래프의 노드 수 NN과 간선 수 MM이 주어진다 (N−1≤M≤N(N−1)2N - 1 \le M \le \frac{N(N-1)}{2}). 노드는 1부터 NN까지 번호가 매겨져 있다.

이어지는 MM개의 줄 중 ii번째 줄에는 공백으로 구분된 두 정수 uiu_i와 viv_i (1≤ui,vi≤N1 \le u_i, v_i \le N, ui≠viu_i \ne v_i)가 주어지며, 이는 노드 uiu_i와 viv_i를 잇는 무방향 간선이 있다는 뜻이다. 같은 간선이 두 번 나오지 않으며, 그래프는 연결되어 있다.

출력

안키차에게 성공적인 전략이 없으면 첫 번째 줄에 "NO"를 출력하고 종료한다.

그렇지 않으면 첫 번째 줄에 "YES"를 출력한다. 두 번째 줄에는 수 kk를, 세 번째 줄에는 kk개의 수 a1,a2,…,aka_1, a_2, \dots, a_k를 출력한다.

예제2

  1. 예제 1

    입력
    7 6
    1 2
    1 3
    1 4
    1 5
    1 6
    1 7
    
    예상 출력
    YES
    2
    1 1
    
  2. 예제 2

    입력
    6 6
    1 2
    2 3
    3 1
    1 4
    2 5
    3 6
    
    예상 출력
    NO