Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
150404 | 方竟成 | 最小交通费用问题 | C++ | 运行出错 | 0 | 0 MS | 240 KB | 694 | 2024-06-03 13:27:09 |
//最小交通费用问题 #include <bits/stdc++.h> using namespace std; const int MAXN=101; int N,M,a,b,s; int D[MAXN][MAXN]; void Floyd() { for (int k=1; k<=N; k++) for (int i=1; i<=N; i++) for (int j=1; j<=N; j++) if (D[i][k]!=-1 && D[k][j]!=-1) if (D[i][k]+D[k][j]<D[i][j] || D[i][j]==-1) D[i][j]=D[i][k]+D[k][j]; } int main() { freopen("road.in" ,"r",stdin); freopen("road.out","w",stdout); scanf("%d %d",&N,&M); memset(D,-1,sizeof(D)); for (int i=1; i<=M; i++) { scanf("%d %d %d",&a,&b,&s); D[a][b]=s; } scanf("%d %d",&a,&b); Floyd(); printf("%d\n",D[a][b]+D[b][a]); return 0; }