fork download
  1. from sys import *
  2. class el:
  3. def __init__(x,d=None,n=None):
  4. x.d=d
  5. x.n=n
  6. lt=int(stdin.readline())
  7. def bfs(t,s,n):
  8. od=[0]*(n+1)
  9. p=k=el(s)
  10. od[s]=1
  11. stdout.write(str(s))
  12. while p:
  13. if len(t[p.d])>0:
  14. l=t[p.d][0]
  15. t[p.d]=t[p.d][1:]
  16. if not od[l]:
  17. od[l]=1
  18. e=el(l)
  19. k.n=e
  20. k=e
  21. stdout.write(' '+str(l))
  22. else:
  23. p=p.n
  24. def dfs(t,s,n):
  25. od=[0]*(n+1)
  26. p=None
  27. p=el(s,p)
  28. od[s]=1
  29. stdout.write(str(s))
  30. while p:
  31. if len(t[p.d])>0:
  32. l=t[p.d][0]
  33. t[p.d]=t[p.d][1:]
  34. if not od[l]:
  35. p=el(l,p)
  36. od[l]=1
  37. stdout.write(" "+str(l))
  38. else:
  39. p=p.n
  40. for i in range(lt):
  41. stdout.write('graph '+str((i+1))+'\n')
  42. n=int(stdin.readline())
  43. t=[[]for l in range(n+1)]
  44. for j in range(1,n+1):
  45. w=list(map(int,stdin.readline().split()))
  46. w=w[2:]
  47. t[j]=w
  48. s=1
  49. r=1
  50. while s!=0 or r!=0:
  51. w=stdin.readline().split()
  52. s=int(w[0])
  53. r=int(w[1])
  54. if(s==0 and r==0):
  55. break
  56. tp=list(t)
  57. if r==1:
  58. bfs(tp,s,n)
  59. stdout.write('\n')
  60. else:
  61. dfs(tp,s,n)
  62. stdout.write('\n')
Success #stdin #stdout 0.02s 27616KB
stdin
3
6
1 2 3 4
2 2 3 6
3 2 1 2
4 1 1
5 0
6 1 2
5 1
1 0
1 0
0 0
10
1 6 3 5 6 7 8 9
2 1 9
3 2 1 5
4 5 6 7 8 9 10
5 4 1 3 7 8
6 3 1 4 7
7 5 1 4 5 6 8
8 5 1 4 5 7 10
9 3 1 2 4
10 2 4 8
7 1
1 0
2 1
4 1
7 1
0 0
2
1 0
2 0
1 1
0 0
stdout
graph 1
5
1 3 2 6 4
1 3 2 6 4
graph 2
7 1 4 5 6 8 3 9 10 2
1 3 5 7 4 6 8 10 9 2
2 9 1 4 3 5 6 7 8 10
4 6 7 8 9 10 1 5 2 3
7 1 4 5 6 8 3 9 10 2
graph 3
1