QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#21118. 풀 미식가

Statistics

방목을 더 잘 관리하려고 Farmer John은 농장 곳곳에 일방통행 소 길을 만들었다. $N$개의 들판은 $1..N$으로 번호를 매겼고 각 길은 둘을 잇는다. $X$에서 $Y$로 가는 길은 그 방향만 허용하고 반대는 허용하지 않는다.

Bessie는 최대한 많은 들판의 풀을 먹고 싶다. 매일 들판 $1$에서 출발해 여러 들판을 방문하고 마지막에 $1$로 돌아온다. 서로 다른 들판 수를 최대화하며, 여러 번 방문해도 그곳 풀은 한 번만 먹는다.

일방통행 제한이 방문 수를 줄여서 마음에 들지 않는다. 규칙을 어기고 최대 한 번 길을 역방향으로 가면 얼마나 먹을 수 있을까? 들판 $1$에서 시작하고 끝나며 최대 한 번 역방향 이동하는 경로의 서로 다른 들판 최대 수를 구하라. 전체 여행에서 역방향은 최대 한 번뿐이며 같은 길도 두 번 역방향으로 갈 수 없다.

입력

첫 줄은 들판 수 $N$과 길 수 $M$($1 \leq N, M \leq 100,000$)을 포함한다.

다음 $M$개 줄은 서로 다른 번호 $X$, $Y$로 $X$에서 $Y$의 길을 나타낸다. 같은 길은 중복되지 않는다.

출력

$1$에서 시작해 $1$로 돌아오며 최대 한 번 역방향 이동할 때 서로 다른 들판 최대 수를 한 줄로 출력한다.

예제

입력 1

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

출력 1

6

참고

예제 입력의 ASCII 그림이다.

v---3-->6
7   |\  |
^\  v \ |
| \ 1  \|
|  \|   v
|   v   5
4<--2---^

$5$와 $3$ 사이 길을 역방향으로 가서 $1,2,4,7,2,5,3,1$을 방문할 수 있다. $3$에 도착하면 다른 역방향 길 없이는 $6$에 갈 수 없다.

문제 출제: Mark Gordon, 2015

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.