zoj1082 Stockbroker Grapevine

  1. //zoj1082 Stockbroker Grapevine
  2. //Accepted 1082 C ++ 00:00.00 472K
  3. #include <stdio.h>
  4. #define MAXN 100
  5. #define INF 100000000
  6. typedef int elem;
  7. int n;
  8. void floyd(int n,elem m[][MAXN],elem a[][MAXN])
  9. {
  10.        int i,j,k;
  11.        for (i=0; i<n; ++i)
  12.               for (j=0; j<n; ++j)
  13.                      a[i][j] = m[i][j];
  14.        for (k=0; k<n; ++k)
  15.               for (i=0; i<n; ++i)
  16.                      for (j=0; j<n; ++j)
  17.                             if (a[i][j] > a[i][k]+a[k][j])
  18.                                    a[i][j] = a[i][k]+a[k][j];
  19. }
  20. void solve()
  21. {
  22.        int i,j;
  23.        elem m[MAXN][MAXN],a[MAXN][MAXN];
  24.        for (i=0; i<n; ++i)
  25.               for (j=0; j<n; ++j)
  26.                      if (i == j) m[i][j] = 0;
  27.                      else m[i][j] = INF;
  28.        for (i=0; i<n; ++i) {
  29.               int pair;
  30.               scanf ("%d",&pair);
  31.               for (j=0; j<pair; ++j) {
  32.                      int d,time;
  33.                      scanf ("%d %d",&d,&time);
  34.                      m[i][d-1] = time;
  35.               }
  36.        }
  37.        floyd(n,m,a);
  38.        int max, min=INF, md;
  39.        for (i=0; i<n; ++i) {
  40.               max = 0;
  41.               for (j=0; j<n; ++j)
  42.                      if (a[i][j] > max)
  43.                             max = a[i][j];
  44.               if (max < min) {
  45.                      min = max;
  46.                      md = i+1;
  47.               }
  48.        }
  49.        printf ("%d %d/n",md,min);
  50. }
  51. int main()
  52. {
  53. #ifndef ONLINE_JUDGE
  54.        freopen("1082.txt","r",stdin);
  55. #endif
  56.        while (scanf ("%d",&n) != EOF && n)
  57.               solve();
  58. #ifndef ONLINE_JUDGE
  59.        fclose(stdin);
  60. #endif
  61.        return 0;
  62. }
  63.  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值