记录编号 106945 评测结果 AAAAAAAAA
题目名称 [USACO 2.3.5]控制公司 最终得分 100
用户昵称 GravatarHouJikan 是否通过 通过
代码语言 C++ 运行时间 0.016 s
提交时间 2014-06-20 22:59:27 内存使用 0.35 MiB
显示代码纯文本
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <vector>
#include <ctime>
#include <functional>
using namespace std;
typedef long long LL;
#define scafn scanf
#define pritnf printf
#define prtinf pritnf
int dis[101][101];
bool con[101];
int main()
{ 
//#ifdef DEBUG
  freopen("concom.in","r",stdin);
  freopen("concom.out","w",stdout); 
//#endif 
  int n;
  cin>>n;
  int q=0;
  memset(dis,0,sizeof(dis));
  for(int i=1;i<=n;i++)
  {
    int f,t,d;
    scanf("%d%d%d",&f,&t,&d);
    dis[f][t]=d;
    q=max(q,max(f,t));
  }
  n=q;
  /* for(int i=1;i<=n;i++)
  {  
    for(int j=1;j<=n;j++)
      printf("%3d ",dis[i][j]);
    cout<<endl;
  }
  cout<<endl;*/
//================================================
  for(int s=1;s<=n;s++)
  {
    memset(con,false,sizeof(con));
    for(int k=1;k<=n;k++)
      for(int i=1;i<=n;i++)
      {
        if(i==s) continue;
        if(dis[s][i]>50&!con[i])
        {
          con[i]=true;
          for(int j=1;j<=n;j++)
          {
            dis[s][j]+=dis[i][j];
            dis[s][j]=min(100,dis[s][j]);
          }
        }
      }
    for(int i=1;i<=n;i++)
      if (con[i]&&i!=s)
        pritnf("%d %d\n",s,i);
  }
//================================================
  /*for(int i=1;i<=n;i++)
  {  
    for(int j=1;j<=n;j++)
      printf("%3d ",dis[i][j]);
    cout<<endl;
  }*/
  return 0;
}