poj 1125 Stockbroker Grapevine

2012-12-17 13:02:38 · 作者: · 浏览: 319

    #include <iostream>

    using namespace std;

    int main(){

    int array[101][101];

    int n;

    while(cin》n){

    if(n==0)break;

    for(int i=1;i<=n;i++){

    for(int j=1;j<=n;j++){

    array[i][j]=0xffff;

    }

    }

    for(int i=1;i<=n;i++){

    int m;

    cin》m;

    for(int j=1;j<=m;j++){

    int d,w;

    cin》d;

    cin》w;

    array[i][d]=w;

    }

    }

    /*

    for(int i=1;i<=n;i++){

    for(int j=1;j<=n;j++){

    cout《array[i][j]《"\t";

    }

    cout《endl;

    }

    */

    for(int k=1;k<=n;k++){

    for(int i=1;i<=n;i++){

    for(int j=1;j<=n;j++){

    if(i==j || j==k || k==i){

    continue;

    }

    else{

    if(array[i][j]>array[i][k]+array[k][j]){

    array[i][j]=array[i][k]+array[k][j];

    }

    }

    }

    }

    }

    /*

    for(int i=1;i<=n;i++){

    for(int j=1;j<=n;j++){

    cout《array[i][j]《"\t";

    }

    cout《endl;

    }

    */

    int eaMax,tMin=0xffff;

    int res=0;

    for(int i=1;i<=n;i++){

    eaMax=0;

    for(int j=1;j<=n;j++){

    if(i==j)

    continue;

    if(eaMax<array[i][j]){

    eaMax=array[i][j];

    }

    }

    if(eaMax<tMin){

    tMin=eaMax;

    res=i;

    }

    //cout《"max:"《eaMax《" min:"《tMin《endl;

    }

    if(res==0){

    cout《"disjoint"《endl;

    }

    else{

    cout《res《" "《tMin《endl;

    }

    }

    return 0;