#1323
Gold V
엥슨그래프
시간 제한
1s
메모리 제한
512MB
제출
19
정답
4
맞힌 사람
4
정답 비율
21.1%

문제

어떤 무방향 그래프가 다음 조건들을 모두 만족하면 엥슨 그래프라고 한다.

  • 어떤 정점을 선택하더라도 그 정점에서 다른 모든 정점으로 가는 경로가 적어도 하나 존재한다.
  • 각 정점은 최대 하나의 단순 사이클에 포함된다. 즉, 포함될 수도 있고 포함되지 않을 수도 있다.

NN개의 정점과 MM개의 간선으로 이루어진 무방향 그래프가 주어진다. 각 정점은 11부터 NN까지 번호가 매겨져 있다. 주어진 그래프가 엥슨 그래프인지 판별하라.

이 문제에서 경로란 정점열 P=[v1,v2,,vk]P = [v_1, v_2, \ldots, v_k]로, 1i<k1 \le i < k인 모든 ii에 대해 viv_ivi+1v_{i+1}를 잇는 간선이 존재하는 것을 말한다.

단순 사이클이란 k4k \ge 4이고 v1=vkv_1 = v_k이며 v1,v2,,vk1v_1, v_2, \ldots, v_{k-1}가 모두 서로 다른 경로 [v1,v2,,vk][v_1, v_2, \ldots, v_k]를 말한다. 두 단순 사이클이 서로 반대 방향으로 같은 정점들을 같은 순서로 지난다면 같은 단순 사이클로 본다.

입력

첫째 줄에 정점의 수 NN과 간선의 수 MM이 공백으로 구분되어 주어진다. (1N100,000;0MN)(1 \le N \le 100,000; 0 \le M \le N)

다음 MM개의 줄 중 ii번째 줄에는 ii번째 간선이 잇는 두 정점 uiu_i, viv_i가 공백으로 구분되어 주어진다. (1ui,viN;uivi)(1 \le u_i, v_i \le N; u_i \ne v_i)

주어지는 간선은 모두 서로 다르다. 즉, 같은 두 정점을 잇는 간선이 두 번 이상 주어지지 않는다.

출력

주어진 그래프가 엥슨 그래프라면 YES를, 아니라면 NO를 출력한다.

예제 입력 1

3 3
1 2
2 3
1 3

예제 출력 1

YES

예제 입력 2

3 1
2 1

예제 출력 2

NO

예제 입력 3

1 0

예제 출력 3

YES

예제 입력 4

5 5
2 3
1 3
4 5
5 2
5 3

예제 출력 4

YES

예제 입력 5

5 5
2 3
1 3
1 5
5 2
5 3

예제 출력 5

NO

힌트

예제 1의 그래프는 모든 정점이 서로 연결되어 있고, 각 정점이 포함되는 단순 사이클은 삼각형 하나뿐이므로 엥슨 그래프이다.

예제 5의 그래프는 44번 정점에서 다른 정점으로 가는 경로가 존재하지 않는다. 또한 33번 정점은 31533 \rightarrow 1 \rightarrow 5 \rightarrow 332533 \rightarrow 2 \rightarrow 5 \rightarrow 3이라는 두 단순 사이클에 포함되므로 엥슨 그래프가 아니다.

문제를 만든 사람
조서현
알고리즘 분류
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
#순위사용자언어시간메모리코드 길이
7638🥇
Flying_Spaghetti_Monster
C++36ms13504KB659B
8317🥈
조서현
PyPy82ms69888KB355B
7895🥉
Team_Choi
PyPy85ms69608KB529B
77634
Fine_Tuning
C++333ms1600KB937B
난이도 투표
Gold V1명 투표· 11일 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
#사용자문제결과언어시간메모리코드 길이제출 시간
8317
맞았습니다
PyPy82ms69888KB355B2026. 05. 26. 01:29