提交时间:2024-06-01 15:06:40

运行 ID: 150067

#include <bits/stdc++.h> using namespace std; const int N = 105; int n , a , b , c , maxn = 1e9; int mp[N][N] , f[N]; int main() { cin >> n; memset(mp , -1 , sizeof(mp)); for(int i = 1;i <= n;i++){ cin >> a >> b >> c; if(a == 0 && b == 0 && c == 0) break; mp[a][b] = c; } for(int i = 1;i < n;i++) f[i] = maxn; f[n] = 0; for(int i = n - 1;i >= 1;i--) for(int j = n;j > i;j--) if(mp[i][j] > 0 && f[j] != maxn && f[j] + mp[i][j] < f[i]) f[i] = f[j] + mp[i][j]; cout << f[1]; return 0; }