题库练习 Cyclic Coloring
← 上一题 下一题 →

A8484 | Cyclic Coloring

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

You are given a directed graph $G$ with $n$ vertices and $m$ arcs (multiple arcs and self-loops are allowed). You have to paint each vertex of the graph into one of the $k$ $(k<=n)$ colors in such way that for all arcs of the graph leading from a vertex $u$ to vertex $v$ , vertex $v$ is painted with the next color of the color used to paint vertex $u$ .

The colors are numbered cyclically $1$ through $k$ . This means that for each color $i$ $(i<k)$ its next color is color $i+1$ . In addition, the next color of color $k$ is color $1$ . Note, that if $k=1$ , then the next color for color $1$ is again color $1$ .

Your task is to find and print the largest possible value of $k$ $(k<=n)$ such that it's possible to color $G$ as described above with $k$ colors. Note that you don't necessarily use all the $k$ colors (that is, for each color $i$ there does not necessarily exist a vertex that is colored with color $i$ ).

输入格式

The first line contains two space-separated integers $n$ and $m$ ( $1<=n,m<=10^{5}$ ), denoting the number of vertices and the number of arcs of the given digraph, respectively.

Then $m$ lines follow, each line will contain two space-separated integers $a_{i}$ and $b_{i}$ ( $1<=a_{i},b_{i}<=n$ ), which means that the $i$ -th arc goes from vertex $a_{i}$ to vertex $b_{i}$ .

Multiple arcs and self-loops are allowed.

输出格式

Print a single integer — the maximum possible number of the colors that can be used to paint the digraph (i.e. $k$ , as described in the problem statement). Note that the desired value of $k$ must satisfy the inequality $1<=k<=n$ .

输入输出样例

输入 #1
4 4
1 2
2 1
3 4
4 3
输出 #1
2
输入 #2
5 2
1 4
2 5
输出 #2
5
输入 #3
4 5
1 2
2 3
3 1
2 4
4 1
输出 #3
3
输入 #4
4 4
1 1
1 2
2 1
1 2
输出 #4
1
C++ 编辑器
输入
输出