#icpc2014summerday4i. [icpc2014summer_day4_i]首都
[icpc2014summer_day4_i]首都
MathJax.Hub.Config({ tex2jax: { inlineMath: [[""], ["\\(","\\)"]], processEscapes: true }}); blockquote { font-family: Menlo, Monaco, "Courier New", monospace; color: #333333; display: block; padding: 8.5px; margin: 0 0 9px; font-size: 12px; line-height: 18px; background-color: #f5f5f5; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, 0.15); -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; white-space: pre; white-space: pre-wrap; word-break: break-all; word-wrap: break-word; }
Problem Statement
閉路のない連結な有向グラフが与えられる.(有向グラフが連結であるとは,これを無向グラフとした時に連結であるという事である.)
このグラフに対して一つの頂点を選んで首都 を定めたい.
= " から全ての点を到達可能にするために必要な「辺の反転」操作の回数の最小値"とする.
ただし,「辺の反転」とは,頂点 に関して に張られていた有向辺を削除して に張り直すことである.
頂点 が首都であるとは任意の頂点 に対して, が成立することである.
首都であるような頂点をすべて列挙して答えよ.
Input
入力は以下のような形式で 行で与えられる.
:
:
- 1行目には二つの整数 , が与えられ,与えられるグラフは 頂点 辺であることを表す.
- 2行目から 行目にはそれぞれ二つの整数 が与えられ, から に有向辺が張られていることを表す.
Constraints
- ならば
- 与えられるグラフは連結で閉路はない.
- 与えられるグラフに対して,入次数が0である頂点の個数は50以下である.
Output
以下の形式で2行で出力せよ.
...
- 1行目には二つの整数 , を空白区切りで出力せよ.
- 2行目には 個の整数 を空白区切りで出力せよ.
- 変数の意味は以下の通りである.
- : 首都の性質を満たす頂点数
- : 首都となる頂点 に対する の値
- : 首都の性質を満たす頂点を番号に関して昇順に並べた時, 番目の頂点番号
Sample Input 1
3 2
0 1
2 1```
### Output for the Sample Input 1
```plain
2 1
0 2```
* 頂点0を首都とするときには辺(2,1)を反転すれば,(0,1), (1,2)の辺を持つグラフができるので1が答え.
* $T(0)=1$,$T(1)=2$,$T(2)=1$である.
* * *
### Sample Input 2
```plain
5 4
0 1
2 1
2 3
4 3```
### Output for the Sample Input 2
```plain
3 2
0 2 4```
* * *
### Sample Input 3
```plain
5 5
0 1
1 2
3 2
3 4
4 1```
### Output for the Sample Input 3
```plain
2 1
0 3```
* * *