結果
| 問題 | No.1449 新プロランド | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2021-05-02 16:37:02 | 
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) | 
| 結果 | 
                                TLE
                                 
                            (最新) 
                                AC
                                 
                            (最初) | 
| 実行時間 | - | 
| コード長 | 728 bytes | 
| コンパイル時間 | 103 ms | 
| コンパイル使用メモリ | 12,928 KB | 
| 実行使用メモリ | 43,008 KB | 
| 最終ジャッジ日時 | 2024-12-24 02:07:57 | 
| 合計ジャッジ時間 | 5,865 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 25 TLE * 1 | 
ソースコード
class Town:
    def __init__(self):
        self.T = None
        self.V = []
    def __str__(self):
        return "T:" + str(self.T) + ",V:" + str(self.V)
        
N, M = map(int, input().split())
T = [Town() for _ in range(N)]
for _ in range(M):
    a, b, c = map(int, input().split())
    T[a-1].V.append((b-1, c))
    T[b-1].V.append((a-1, c))
for i, t in enumerate(list(map(int, input().split()))):
    T[i].T = t
    
G = float('inf')    
    
q = [(0, 0, 0)]
while len(q) > 0:
    i, m, p = q.pop(0)
    t = T[i]
    p += t.T
    m += t.T
    for j, c in t.V:
        nt = T[j]
        if G > m+c//p:
            if j == N-1:
                G = m+c//p
            else:
                q.append((j, m+c//p, p))
print(G)
            
            
            
        