#1332
Platinum III
선인장 2
시간 제한
1s
메모리 제한
512MB
제출
1
정답
1
맞힌 사람
1
정답 비율
100.0%

문제

선인장 그래프란 모든 간선 또는 정점이 최대 하나의 단순 사이클에만 속하는 연결 그래프다. 선인장 그래프는 다시 간선 선인장과 정점 선인장으로 정의가 나뉘는데, 이 문제에서는 정점 선인장을 선인장 그래프라 정의한다. 즉, 선인장 그래프란 모든 정점이 최대 하나의 단순 사이클에만 속하는 연결 그래프이다.

이 그래프는 선인장 그래프이자 트리이다. 모든 트리는 선인장 그래프이다.

이 그래프는 선인장 그래프지만 트리는 아니다.

이 그래프는 선인장 그래프도 아니다. 43244 \rightarrow 3 \rightarrow 2 \rightarrow 4 사이클과 432144 \rightarrow 3 \rightarrow 2 \rightarrow 1 \rightarrow 4 사이클에서 서로 간선을 공유하기 때문이다.

NN개의 정점과 MM개의 간선으로 이루어진 그래프가 주어진다. 각 정점에는 11부터 NN까지 번호가 매겨져 있고 각 간선은 두 정점을 연결한다. 이때, 이 그래프가 선인장 그래프인지 판별하는 프로그램을 작성해 보자.

입력

첫째 줄에 NNMM이 공백으로 구분되어 주어진다. (2N100000;1M3000002\le N\le 100\,000; 1\le M\le 300\,000)

둘째 줄부터 MM개의 줄에 걸쳐, 각 줄에 uuvv가 공백으로 구분되어 주어진다. uu번 정점과 vv번 정점을 연결하는 간선이 존재한다는 의미다. (1u,vN;uv1\le u, v\le N; u\neq v) 두 정점을 연결하는 간선은 최대 하나다.

출력

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

예제 입력 1

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

예제 출력 1

YES

예제 입력 2

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

예제 출력 2

NO

예제 입력 3

6 7
1 2
2 3
3 4
3 5
1 4
5 6
6 3

예제 출력 3

NO

예제 입력 4

3 1
1 2

예제 출력 4

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

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

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
#순위사용자언어시간메모리코드 길이
8435🥇
조서현
Rust26ms14124KB12795B
난이도 투표
Platinum III1명 투표· 11일 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
#사용자문제결과언어시간메모리코드 길이제출 시간
8435
맞았습니다
Rust26ms14124KB12795B2026. 05. 26. 10:02