fork download
  1. from collections import deque
  2. q = deque()
  3. n = int(input())
  4. a = []
  5. for i in range(n):
  6. row = input().split()
  7. for i in range(len(row)):
  8. row[i] = int(row[i])
  9. a.append(row)
  10. v = [-1]*n
  11. str = input().split()
  12. s = int(str[0]) - 1
  13. f = int(str[1]) - 1
  14. v[s] = 0
  15. q.append(s)
  16. while len(q) > 0:
  17. u = q.popleft()
  18. for i in range (n):
  19. if a[i][u] == 1 and v[i] == -1:
  20. v[i] = v[u] + 1
  21. q.append(i)
  22. print(v[f])
  23. if v[f] > 0:
  24. x = [0]*(v[f] + 1)
  25. x[0] = f
  26. for i in range(1, v[f] + 1):
  27. for j in range(n):
  28. if (a[j][x[i - 1]] == 1 and v[j] == v[x[i-1]] - 1):
  29. x[i] = j
  30. break
  31. y = [0]*len(x)
  32. for i in range(len(x)):
  33. y[i] = x[len(x) - 1 - i]
  34. print(y[i] + 1, end=' ')
  35.  
Success #stdin #stdout 0.02s 27704KB
stdin
5
0 1 0 0 1
1 0 1 0 0
0 1 0 0 0
0 0 0 0 0
1 0 0 0 0
3 5
stdout
3
3 2 1 5