import numpy as np
def solve(test_cases):
for case in test_cases:
n, m, total_time, edges = case['n'], case['m'], case['total_time'], case['edges']
steps = total_time // 10
# Nodes are 1-based; adjust for 0-based indexing
tmat = np.zeros((n, n))
for edge in edges:
u, v, p = edge
tmat[u-1][v-1] = p # 0-based
prob = np.zeros(n)
prob[0] = 1 # Starting at node 1
for _ in range(steps):
prob = np.dot(prob, tmat)
# Print the index (+1), of max probability (division), and optionally probability
print(np.argmax(prob) + 1)
test_cases = [
{
"n": 6,
"m": 10,
"total_time": 40,
"edges": [
(1,2,0.3), (1,3,0.7), (3,3,0.2), (3,4,0.8), (2,4,1), (4,5,0.9),
(4,4,0.1), (5,6,1.0), (6,3,0.5), (6,6,0.5)
]
},
{
"n": 6,
"m": 10,
"total_time": 10,
"edges": [
(1,2,0.3), (1,3,0.7), (3,3,0.2), (3,4,0.8), (2,4,1), (4,5,0.9),
(4,4,0.1), (5,6,1.0), (6,3,0.5), (6,6,0.5)
]
}
]
solve(test_cases)
aW1wb3J0IG51bXB5IGFzIG5wCgpkZWYgc29sdmUodGVzdF9jYXNlcyk6CiAgICBmb3IgY2FzZSBpbiB0ZXN0X2Nhc2VzOgogICAgICAgIG4sIG0sIHRvdGFsX3RpbWUsIGVkZ2VzID0gY2FzZVsnbiddLCBjYXNlWydtJ10sIGNhc2VbJ3RvdGFsX3RpbWUnXSwgY2FzZVsnZWRnZXMnXQogICAgICAgIHN0ZXBzID0gdG90YWxfdGltZSAvLyAxMAogICAgICAgICMgTm9kZXMgYXJlIDEtYmFzZWQ7IGFkanVzdCBmb3IgMC1iYXNlZCBpbmRleGluZwogICAgICAgIHRtYXQgPSBucC56ZXJvcygobiwgbikpCiAgICAgICAgZm9yIGVkZ2UgaW4gZWRnZXM6CiAgICAgICAgICAgIHUsIHYsIHAgPSBlZGdlCiAgICAgICAgICAgIHRtYXRbdS0xXVt2LTFdID0gcCAgIyAwLWJhc2VkCiAgICAgICAgcHJvYiA9IG5wLnplcm9zKG4pCiAgICAgICAgcHJvYlswXSA9IDEgICMgU3RhcnRpbmcgYXQgbm9kZSAxCiAgICAgICAgZm9yIF8gaW4gcmFuZ2Uoc3RlcHMpOgogICAgICAgICAgICBwcm9iID0gbnAuZG90KHByb2IsIHRtYXQpCiAgICAgICAgIyBQcmludCB0aGUgaW5kZXggKCsxKSwgb2YgbWF4IHByb2JhYmlsaXR5IChkaXZpc2lvbiksIGFuZCBvcHRpb25hbGx5IHByb2JhYmlsaXR5CiAgICAgICAgcHJpbnQobnAuYXJnbWF4KHByb2IpICsgMSkKdGVzdF9jYXNlcyA9IFsKICAgIHsKICAgICAgICAibiI6IDYsCiAgICAgICAgIm0iOiAxMCwKICAgICAgICAidG90YWxfdGltZSI6IDQwLAogICAgICAgICJlZGdlcyI6IFsKICAgICAgICAgICAgKDEsMiwwLjMpLCAoMSwzLDAuNyksICgzLDMsMC4yKSwgKDMsNCwwLjgpLCAoMiw0LDEpLCAoNCw1LDAuOSksCiAgICAgICAgICAgICg0LDQsMC4xKSwgKDUsNiwxLjApLCAoNiwzLDAuNSksICg2LDYsMC41KQogICAgICAgIF0KICAgIH0sCiAgICB7CiAgICAgICAgIm4iOiA2LAogICAgICAgICJtIjogMTAsCiAgICAgICAgInRvdGFsX3RpbWUiOiAxMCwKICAgICAgICAiZWRnZXMiOiBbCiAgICAgICAgICAgICgxLDIsMC4zKSwgKDEsMywwLjcpLCAoMywzLDAuMiksICgzLDQsMC44KSwgKDIsNCwxKSwgKDQsNSwwLjkpLAogICAgICAgICAgICAoNCw0LDAuMSksICg1LDYsMS4wKSwgKDYsMywwLjUpLCAoNiw2LDAuNSkKICAgICAgICBdCiAgICB9Cl0Kc29sdmUodGVzdF9jYXNlcykK