from sys import stdin from collections import deque
(n,m) = map(int,stdin.readline().strip().split(' ')) mp = [[] for i inrange(n+5)] d = [0for i inrange(n+5)] ans = [] qu = deque()
for i inrange(m): (x,y) = map(int,stdin.readline().strip().split(' ')) mp[x].append(y) d[y]+=1
for i inrange(1,n+1): if d[i]==0: qu.append(i)
whilelen(qu): tp = qu.popleft() ans.append(tp) for nx in mp[tp]: d[nx]-=1 if d[nx]==0: qu.append(nx) iflen(ans)==n: for i in ans: print(i,end=' ') else: print("-1")
from sys import stdin from collections import deque
t = int(stdin.readline().strip()) for _ inrange(t): (n,m) = map(int,stdin.readline().strip().split(' ')) qu = deque() mp = [[] for i inrange(n+2)] li = [] d = [0for i inrange(n+2)] topxu = [0for i inrange(n+2)] cnt = 0
for i inrange(m): (t,x,y) = map(int,stdin.readline().strip().split(' ')) li.append((x,y,t)) if t==1: mp[x].append(y) d[y]+=1
for i inrange(1,n+1): if d[i]==0: qu.append(i) whilelen(qu): tp = qu.popleft() cnt+=1 topxu[tp] = cnt for nx in mp[tp]: d[nx]-=1 if d[nx]==0: qu.append(nx) if cnt==n : print("YES") for v in li: if v[2]==0: if topxu[v[0]] > topxu[v[1]]: print(v[1],v[0]) else: print(v[0],v[1]) else: print(v[0],v[1]) else :print("NO")
qu = [] dis = [2000000000for i inrange(N+5)] st = [Falsefor i inrange(N+5)] mp = [[] for i inrange(N+5)] # 杂交方案mp[a] = [b,c] 表示 a+b->c
t = list(map(int,stdin.readline().strip().split(" "))) t = [0]+t k = list(map(int,stdin.readline().strip().split(" ")))
for i in k: heapq.heappush(qu,i) dis[i] = 0 st[i] = True
for _ inrange(K): A,B,C = map(int,stdin.readline().strip().split(" ")) mp[A].append((B,C)) mp[B].append((A,C))
defspfa(): whilelen(qu): a = heapq.heappop(qu) st[a] = False for plan in mp[a]: b,c= plan[0],plan[1] if dis[c] > max(dis[a],dis[b])+max(t[a],t[b]): dis[c] = max(dis[a],dis[b])+max(t[a],t[b]) if st[c]==False: heapq.heappush(qu,c) st[c] = True spfa() print(dis[T])
from sys import stdin from collections import deque import heapq
defcheck(mid): q=deque([i for i inrange(1,idx)]) st=[True]*idx dis=[0]*idx cnt=[0]*idx count=0 while q: cur=q.popleft() st[cur]=False if cur in graph: for nx in graph[cur]: if dis[nx]<dis[cur]+graph[cur][nx]-mid: dis[nx]=dis[cur]+graph[cur][nx]-mid cnt[nx]=cnt[cur]+1 count+=1 if count>2000: returnTrue if cnt[nx]>=idx-1: returnTrue ifnot st[nx]: st[nx]=True q.append(nx)
returnFalse
whileTrue: n = int(input()) if n==0:break graph = {} dic = {} idx = 1 for _ inrange(n): s=input() a=s[:2] b=s[-2:] l=len(s)
if a notin dic: dic[a]=idx idx+=1
if b notin dic: dic[b]=idx idx+=1 a = dic[a] b = dic[b] if a notin graph: graph[a]={}
graph[a][b]=max(graph[a].get(b,0),l)
ifnot check(0): print("No solution") else: left=0 r=1000 while r-left>10**-4: mid=(left+r)/2 if check(mid): left=mid else: r=mid print(r)
from sys import stdin from collections import deque import heapq import functools
T = int(stdin.readline().strip())
defdfs(u,depth): global l,r,d d[u]=depth if l[u]!=-1:dfs(l[u],depth+1) if r[u]!=-1:dfs(r[u],depth+1)
deflca(x,y): global p,d
if d[x] < d[y]: x,y = y,x while d[x] > d[y]: x = p[x] while x!=y : x,y = p[x],p[y] return x
for _ inrange(T): n,m = map(int,stdin.readline().strip().split(' ')) p = [0for i inrange(n+5)] l = [-1for i inrange(n+5)] r = [-1for i inrange(n+5)] d = [-1for i inrange(n+5)] for i inrange(1,n+1): x,y = map(int,stdin.readline().strip().split(' ')) l[i]=x r[i]=y if x!=-1: p[x]=i if y!=-1: p[y]=i dfs(1,0) for i inrange(m): x,y = map(int,stdin.readline().strip().split(' ')) fa = lca(x,y) print(d[x]+d[y]-2*d[fa])
from sys import stdin from collections import deque import heapq import functools
fa = [[0for j inrange(18)] for i inrange(40010)] deep = [99999for i inrange(40010)] root = 0 mp = [[] for i inrange(40010)]
n = int(stdin.readline().strip())
defbfs(): global root,deep,mp,fa qu = deque() deep[0]=0 deep[root] = 1 qu.append(root) whilelen(qu): tp = qu.popleft() for nx in mp[tp]: if deep[nx]> deep[tp]+1: deep[nx] = deep[tp]+1 fa[nx][0] = tp for i inrange(1,17): fa[nx][i] = fa[fa[nx][i-1]][i-1] qu.append(nx) deflca(x,y): if deep[x] < deep[y]:x,y = y,x for i inrange(16,-1,-1): if deep[fa[x][i]] >= deep[y]: x = fa[x][i]
if x==y:return x for i inrange(16,-1,-1): if deep[fa[x][i]] != deep[fa[y][i]]: x,y = fa[x][i],fa[y][i]
return fa[x][0] for i inrange(n): a,b = map(int,stdin.readline().strip().split()) mp[a].append(b) if b==-1:root = a else: mp[b].append(a)
m = int(stdin.readline().strip())
bfs() for i inrange(m): x,y = map(int,stdin.readline().strip().split()) pp = lca(x,y) if pp==x: print(1) elif pp==y:print(2) else:print(0)