Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 600 点
問題文
N 頂点 M 辺の有向グラフ G が与えられます。
このグラフの頂点には 1 から N までの番号が付けられており、i 番目の辺は頂点 A_i から頂点 B_i に向けて張られています。
このグラフは自己辺や多重辺を持たないことが保証されています。
すべての頂点の入次数が 1、出次数が 1 であるような G の誘導部分グラフ (注記を参照) が存在するか判定し、
存在するならその一例を示してください。
ただし、空グラフは含めないものとします。
注記
有向グラフ G = (V, E) に対し、次のような条件を満たす有向グラフ G' = (V', E') を G の誘導部分グラフと呼びます。
- V' は V の (空でない) 部分集合である。
- E' は、E の辺であって両端点がともに V' に含まれるものすべてを含む集合である。
制約
- 1 \leq N \leq 1000
- 0 \leq M \leq 2000
- 1 \leq A_i,B_i \leq N
- A_i \neq B_i
- 組 (A_i, B_i) はすべて異なる。
- 入力はすべて整数である。
入力
入力は以下の形式で標準入力から与えられます。
N M A_1 B_1 A_2 B_2 : A_M B_M
出力
条件を満たす G の誘導部分グラフが存在しないとき、-1
と出力してください。
そうでないとき、以下のフォーマットで条件を満たす G の誘導部分グラフの一例を出力してください。
K v_1 v_2 : v_K
これは、頂点数が K、頂点集合が \{v_1, v_2, \ldots, v_K\} であるような G の誘導部分グラフを表します。(v_1, v_2, \ldots, v_K の順序は問いません。) 条件を満たす G の誘導部分グラフが複数存在するときは、そのうちのどれを出力しても構いません。
入力例 1
4 5 1 2 2 3 2 4 4 1 4 3
出力例 1
3 1 2 4
頂点集合が \{1, 2, 4\} であるような G の誘導部分グラフの辺集合は \{(1, 2), (2, 4), (4, 1)\} であり、すべての頂点の入次数が 1、出次数が 1 となります。
入力例 2
4 5 1 2 2 3 2 4 1 4 4 3
出力例 2
-1
条件を満たす G の誘導部分グラフは存在しません。
入力例 3
6 9 1 2 2 3 3 4 4 5 5 6 5 1 5 2 6 1 6 2
出力例 3
4 2 3 4 5
Score : 600 points
Problem Statement
Given is a directed graph G with N vertices and M edges.
The vertices are numbered 1 to N, and the i-th edge is directed from Vertex A_i to Vertex B_i.
It is guaranteed that the graph contains no self-loops or multiple edges.
Determine whether there exists an induced subgraph (see Notes) of G such that the in-degree and out-degree of every vertex are both 1. If the answer is yes, show one such subgraph.
Here the null graph is not considered as a subgraph.
Notes
For a directed graph G = (V, E), we call a directed graph G' = (V', E') satisfying the following conditions an induced subgraph of G:
- V' is a (non-empty) subset of V.
- E' is the set of all the edges in E that have both endpoints in V'.
Constraints
- 1 \leq N \leq 1000
- 0 \leq M \leq 2000
- 1 \leq A_i,B_i \leq N
- A_i \neq B_i
- All pairs (A_i, B_i) are distinct.
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N M A_1 B_1 A_2 B_2 : A_M B_M
Output
If there is no induced subgraph of G that satisfies the condition, print -1
.
Otherwise, print an induced subgraph of G that satisfies the condition, in the following format:
K v_1 v_2 : v_K
This represents the induced subgraph of G with K vertices whose vertex set is \{v_1, v_2, \ldots, v_K\}. (The order of v_1, v_2, \ldots, v_K does not matter.) If there are multiple subgraphs of G that satisfy the condition, printing any of them is accepted.
Sample Input 1
4 5 1 2 2 3 2 4 4 1 4 3
Sample Output 1
3 1 2 4
The induced subgraph of G whose vertex set is \{1, 2, 4\} has the edge set \{(1, 2), (2, 4), (4, 1)\}. The in-degree and out-degree of every vertex in this graph are both 1.
Sample Input 2
4 5 1 2 2 3 2 4 1 4 4 3
Sample Output 2
-1
There is no induced subgraph of G that satisfies the condition.
Sample Input 3
6 9 1 2 2 3 3 4 4 5 5 6 5 1 5 2 6 1 6 2
Sample Output 3
4 2 3 4 5