Uva 10048 - Audiophobia

来源:互联网 发布:2017网络项目 编辑:程序博客网 时间:2024/04/30 13:12

2Y

格式有点trick

最后一行没有回车

floyd的简单变形

不用最短路径,而是路径上最长边最小

#include<stdio.h>#define INF (int)1e9 int g[110][110];int max(int a,int b){if(a<b)return b;return a;}void output(int c){int i,j;for(i=1;i<=c;i++){for(j=1;j<=c;j++){if(g[i][j]==INF)printf(" INF");else printf(" %3d",g[i][j]); }printf("\n");}printf("\n");}int main(){int c,s,q;int z=0;while(scanf("%d%d%d",&c,&s,&q)!=EOF){if(!c&&!s&&!q)break;if(z)printf("\n");int i,j,k;for(i=1;i<=c;i++)for(j=1;j<=c;j++)g[i][j]=INF;for(i=1;i<=c;i++)g[i][i]=0;int x,y,w;for(i=1;i<=s;i++){scanf("%d%d%d",&x,&y,&w);g[x][y]=w;g[y][x]=w;}//output(c);for(k=1;k<=c;k++)for(i=1;i<=c;i++)for(j=1;j<=c;j++){if(g[i][k]!=INF&&g[k][j]!=INF){int &t=g[i][j];int tp=max(g[i][k],g[k][j]);if(tp<t)t=tp;}}//output(c);printf("Case #%d\n",++z);for(i=1;i<=q;i++){scanf("%d%d",&x,&y);if(g[x][y]==INF)printf("no path\n");else printf("%d\n",g[x][y]);}}return 0;}