퍼레이드

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

요약
정점 V개와 간선 E개로 이루어진 무방향 그래프가 주어질 때, 모든 간선을 정확히 한 번씩 지나는 오일러 회로가 존재하는지 판별한다.
난이도

보통10점 중 6점

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

문제

종우는 18학번을 대표하여 중앙대학교 개교 100주년 기념 퍼레이드의 경로 선정 위원으로 선정되었다. 퍼레이드의 경로는 일정한 지점들과 두 지점을 연결하는 연결 구간으로 이루어져 있다. 종우는 모든 지점을 지나면서 모든 연결 구간을 지나고 싶어한다.

하지만 같은 연결 구간을 두 번 이상 지날 경우 그 구간의 주민들이 민원을 제기하게 된다. 단, 같은 지점은 두 번 이상 지나도 된다.

민원을 받지 않으면서 모든 구간을 지나도록 퍼레이드를 만들고 싶은 종우를 위한 프로그램을 작성해보도록 하자.

입력

첫 번째 줄에 지점의 개수 V, 연결 구간의 개수 E가 주어진다. (1 ≤ V ≤ E ≤ 3000) 이후 E개의 줄에 걸쳐 각 연결 구간이 연결하는 두 지점의 번호 Va, Vb가 공백을 사이에 두고 주어진다. (1 ≤ Va, Vb ≤ V, Va ≠ Vb)

서로 다른 두 연결 구간 (Va1, Vb1), (Va2, Vb2)에서 Va1 = Va2 & Vb1 = Vb2인 경우는 존재하지 않으며, 임의의 지점에 적어도 하나의 연결 구간이 연결되어 있음이 보장된다.

출력

종우가 원하는 노선을 만들 수 있다면 YES, 아니면 NO를 출력한다.

예제2

  1. 예제 1

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

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