init
This commit is contained in:
commit
851751ea87
82 changed files with 2093 additions and 0 deletions
33
1C.py
Normal file
33
1C.py
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
N, M = map(int, input().split())
|
||||
adj = [[] for i in range(N+1)]
|
||||
for i in range(M):
|
||||
u, v = map(int, input().split())
|
||||
adj[u].append(v)
|
||||
color = [0]*(N+1) # 0-нет цвета, 1 - обработка, 2 - отмечена и мы закончили
|
||||
parent = [0]*(N+1)
|
||||
for i in range(1, N+1):
|
||||
if color[i] == 0:
|
||||
stack = [i]
|
||||
while stack:
|
||||
u = stack.pop()
|
||||
if color[u] == 0:
|
||||
color[u] = 1
|
||||
stack.append(u)
|
||||
for v in adj[u]:
|
||||
if color[v] == 0:
|
||||
stack.append(v)
|
||||
parent[v] = u
|
||||
elif color[v] == 1 :
|
||||
cycle = [v]
|
||||
curr = u
|
||||
while curr != v:
|
||||
cycle.append(curr)
|
||||
curr = parent[curr]
|
||||
print(len(cycle))
|
||||
print(*(cycle[::-1]))
|
||||
exit()
|
||||
elif color[u] == 1:
|
||||
color[u] = 2
|
||||
|
||||
print("-1")
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue