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

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

Monopol

면접 대비

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

요약
무향 그래프가 주어질 때 변의 개수가 짝수인 단순 사이클을 찾거나, 그런 사이클이 없으면 없다고 판정하는 문제이다.
난이도

보통10점 중 6점

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

문제

Jocke och hans vänner brukar spela Monopol med varandra. Men efter otaliga spel har de tröttnat på de vanliga reglerna, och har därför ändrat på dem en aning.

Först väljer de ett lagom stort land. De tar sedan en titt på vägnätet i landet och väljer ut ett antal städer som bildar en cykel (som på ett monopolbräde). Därefter åker de till landet, och spelar genom att åka runt cykeln i sina bilar och köper/säljer fastigheter med riktiga pengar.

Det finns dock en begränsning som gör det svårt att genomföra spelet: de måste hitta en lämplig cykel i vägnätet. Vissa länder har nämligen ett väldigt stora vägnät. Något som försvårar ytterligare är att cykeln måste ha ett jämnt antal kanter, för annars funkar inte reglerna ("Fri parkering" hamnar inte i mitten vilket ger ett obalanserat spel).

Du får givet en oriktad graf, och din uppgift är att hitta en cykel med ett jämnt antal kanter, om det finns en.

Illustration av graferna i de tre exempelfallen.

입력

Den första raden innehåller två heltal NN (1≤N≤1051 \le N \le 10^5) och MM (0≤M≤min⁡(2⋅105,n(n−1)20 \le M \le \min(2 \cdot 10^5, \frac{n(n-1)}{2}), antalet hörn respektive antalet kanter som vägnätet består av.

Sedan följer MM rader med två heltal aa och bb vardera, vilket betyder att det finns en kant mellan hörn aa och bb i grafen (1≤a≠b≤N1\le a \neq b \le N). Det är garanterat att det inte finns flera kanter mellan samma par av hörn i grafen.

출력

Om det inte finns en jämn cykel, skriv ut en rad med strängen "NO".

Om det finns en jämn cykel, skriv ut en rad med strängen "YES". Därefter ska du skriva ut en sådan cykel. Skriv först ut en rad med ett jämnt heltal kk (4≤k≤N4\le k \le N), antalet hörn i din cykel. På nästa rad, skriv ut KK stycken olika heltal v_1,v_2,…,v_kv\_{1}, v\_{2}, \ldots, v\_{k} (1≤v_i≤N1\le v\_{i}\le N) separerade av mellanslag: hörnen på din cykel, så att kanterna (v_1,v_2),(v_2,v_3), …,(v_k−1,v_k),(v_k,v_1)(v\_{1},v\_{2}), (v\_{2},v\_{3}),\ \ldots, (v\_{k-1},v\_{k}), (v\_{k}, v\_{1}) finns i grafen.

Om det finns flera möjliga svar så kommer vilket som helst accepteras.

예제3

  1. 예제 1

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

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

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