10048Audiophobia--好题
#include<cstdlib>#include<iostream>#include<sstream>#include<cstdio>#include<cmath>#include<cstring>#include <algorithm>#include<vector>#include<set>#include<queue>#define LL long long#define inf 800000#define E 1e-9#define M 100#define N 105using namespace std;int n,m,c,s,q;int ma[N][N];void floyd(){ for(int k=1; k<=c; k++) for(int i=1; i<=c; i++)// if(i!=k) { for(int j=1; j<=c; j++)// if(j!=i&&j!=k) { if(ma[i][k]<ma[i][j]&&ma[k][j]<ma[i][j]) ma[i][j]=max(ma[i][k],ma[k][j]); } }}int main(){#ifndef ONLINE_JUDGE freopen("ex.in","r",stdin);#endif int ncase=0; while(scanf("%d%d%d",&c,&s,&q)!=EOF) { if(!c&&!s&&!q) break; if(ncase) printf("\n"); printf("Case #%d\n",++ncase); for(int i=1; i<=c; ++i) for(int j=1; j<=c; ++j) ma[i][j]=inf; int c1,c2,w; for (int i=0; i<s; i++) { scanf("%d%d%d",&c1,&c2,&w); ma[c1][c2]=ma[c2][c1]=w; } floyd(); for(int i=0;i<q;i++) { scanf("%d%d",&c1,&c2); if(ma[c1][c2]<inf) printf("%d\n",ma[c1][c2]); else printf("no path\n"); } } return 0;}