fork download
  1. def solve():
  2. import sys
  3. input = sys.stdin.read
  4. data = input().split()
  5.  
  6. t = int(data[0])
  7. index = 1
  8.  
  9. results = []
  10.  
  11. for _ in range(t):
  12. n = int(data[index])
  13. k = int(data[index+1])
  14. PB = int(data[index+2])
  15. PS = int(data[index+3])
  16.  
  17. p = list(map(int, data[index+4:index+4+n]))
  18. a = list(map(int, data[index+4+n:index+4+2*n]))
  19.  
  20. # Initial scores
  21. bodya_score = a[PB-1]
  22. sasha_score = a[PS-1]
  23.  
  24. # Current positions
  25. bodya_pos = PB
  26. sasha_pos = PS
  27.  
  28. for _ in range(1, k): # k-1 remaining turns
  29. bodya_pos = p[bodya_pos-1]
  30. sasha_pos = p[sasha_pos-1]
  31.  
  32. bodya_score += a[bodya_pos-1]
  33. sasha_score += a[sasha_pos-1]
  34.  
  35. if bodya_score > sasha_score:
  36. results.append("Bodya")
  37. elif sasha_score > bodya_score:
  38. results.append("Sasha")
  39. else:
  40. results.append("Draw")
  41.  
  42. index += 4 + 2*n
  43.  
  44. print("\n".join(results))
  45.  
Success #stdin #stdout 0.03s 9532KB
stdin
10
4 2 3 2
4 1 2 3
7 2 5 6
10 8 2 10
3 1 4 5 2 7 8 10 6 9
5 10 5 1 3 7 10 15 4 3
2 1000000000 1 2
1 2
4 4
8 10 4 1
5 1 4 3 2 8 6 7
1 1 2 1 2 100 101 102
5 1 2 5
1 2 4 5 3
4 6 9 4 2
4 2 3 1
4 1 3 2
6 8 5 3
6 9 5 4
6 1 3 5 2 4
6 9 8 9 5 10
4 8 4 2
2 3 4 1
5 2 8 7
4 2 3 1
4 1 3 2
6 8 5 3
2 1000000000 1 2
1 2
1000000000 2
stdout
Standard output is empty