poj1125floyd

来源:互联网 发布:复杂网络传播模型 编辑:程序博客网 时间:2024/05/21 11:07
#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <cmath>#include <string>#include <vector>#include <map>#include <queue>#include <stack>using namespace std;const int inf=0x3f3f3f3f;int d[105][105];int main(){    //freopen("in","r",stdin);    int n;    while(cin>>n,n){        for(int i=0;i<105;i++){            for(int j=0;j<105;j++)                d[i][j]=inf;            d[i][i]=0;        }         int m,y,t;         for(int i=1;i<=n;i++){            cin>>m;            for(int j=0;j<m;j++){                cin>>y>>t;                d[i][y]=t;            }         }         for(int k=1;k<=n;k++)            for(int i=1;i<=n;i++)                if(d[i][k]!=inf) for(int j=1;j<=n;j++)                    d[i][j]=min(d[i][j],d[i][k]+d[k][j]);        int ans=inf,num;        for(int i=1;i<=n;i++){            int dd=0;            for(int j=1;j<=n;j++)                if(dd<d[i][j])                    dd=d[i][j];            if(ans>dd){                ans=dd;                num=i;            }        }        if(ans==inf){            cout<<"disjoint"<<endl;            continue;        }        cout<<num<<" "<<ans<<endl;    }    return 0;}
0 0