init
This commit is contained in:
commit
851751ea87
82 changed files with 2093 additions and 0 deletions
32
3I.py
Normal file
32
3I.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
import sys
|
||||
|
||||
input_data = sys.stdin.read().split()
|
||||
N = int(input_data[0])
|
||||
M = int(input_data[1])
|
||||
K = int(input_data[2])
|
||||
S = int(input_data[3]) - 1
|
||||
edges = []
|
||||
ptr = 4
|
||||
for _ in range(M):
|
||||
u = int(input_data[ptr]) - 1
|
||||
v = int(input_data[ptr+1]) - 1
|
||||
w = int(input_data[ptr+2])
|
||||
edges.append((u, v, w))
|
||||
ptr += 3
|
||||
INF = 10**15
|
||||
dp = [INF] * N
|
||||
dp[S] = 0
|
||||
for _ in range(K):
|
||||
next_dp = [INF] * N
|
||||
for u, v, w in edges:
|
||||
if dp[u] != INF:
|
||||
if dp[u] + w < next_dp[v]:
|
||||
next_dp[v] = dp[u] + w
|
||||
dp = next_dp
|
||||
res = []
|
||||
for val in dp:
|
||||
if val == INF:
|
||||
res.append("-1")
|
||||
else:
|
||||
res.append(str(val))
|
||||
print("\n".join(res))
|
||||
Loading…
Add table
Add a link
Reference in a new issue