-
//zoj1082 Stockbroker Grapevine
-
//Accepted 1082 C ++ 00:00.00 472K
-
#include <stdio.h>
-
#define MAXN 100
-
#define INF 100000000
-
typedef int elem;
-
int n;
-
void floyd(int n,elem m[][MAXN],elem a[][MAXN])
-
{
-
int i,j,k;
-
for (i=0; i<n; ++i)
-
for (j=0; j<n; ++j)
-
a[i][j] = m[i][j];
-
for (k=0; k<n; ++k)
-
for (i=0; i<n; ++i)
-
for (j=0; j<n; ++j)
-
if (a[i][j] > a[i][k]+a[k][j])
-
a[i][j] = a[i][k]+a[k][j];
-
}
-
void solve()
-
{
-
int i,j;
-
elem m[MAXN][MAXN],a[MAXN][MAXN];
-
for (i=0; i<n; ++i)
-
for (j=0; j<n; ++j)
-
if (i == j) m[i][j] = 0;
-
else m[i][j] = INF;
-
for (i=0; i<n; ++i) {
-
int pair;
-
scanf ("%d",&pair);
-
for (j=0; j<pair; ++j) {
-
int d,time;
-
scanf ("%d %d",&d,&time);
-
m[i][d-1] = time;
-
}
-
}
-
floyd(n,m,a);
-
int max, min=INF, md;
-
for (i=0; i<n; ++i) {
-
max = 0;
-
for (j=0; j<n; ++j)
-
if (a[i][j] > max)
-
max = a[i][j];
-
if (max < min) {
-
min = max;
-
md = i+1;
-
}
-
}
-
printf ("%d %d/n",md,min);
-
}
-
int main()
-
{
-
#ifndef ONLINE_JUDGE
-
freopen("1082.txt","r",stdin);
-
#endif
-
while (scanf ("%d",&n) != EOF && n)
-
solve();
-
#ifndef ONLINE_JUDGE
-
fclose(stdin);
-
#endif
-
return 0;
-
}
zoj1082 Stockbroker Grapevine
最新推荐文章于 2022-02-07 15:29:59 发布