记录编号 107704 评测结果 AAAAAAAAA
题目名称 [USACO 2.3.5]控制公司 最终得分 100
用户昵称 Gravatarraywzy 是否通过 通过
代码语言 C++ 运行时间 0.086 s
提交时间 2014-06-29 09:34:18 内存使用 0.50 MiB
显示代码纯文本
  1. #include<fstream>
  2. using namespace std;
  3. ifstream fin("concom.in");
  4. ofstream fout("concom.out");
  5. int map[200][200];
  6. bool flag[200][200];
  7. int N;
  8. int main()
  9. {
  10. fin>>N;
  11. int n=0;
  12. int i,A,B,C,j,k;
  13. int S=0;
  14. bool TAG=0;
  15. for(i=1;i<=N;i++)
  16. {
  17. fin>>A>>B>>C;
  18. if(flag[A][B]==1)
  19. { if(map[A][B]>C)
  20. continue;}
  21. map[A][B]=C;
  22. if(C>50)
  23. flag[A][B]=1;
  24. if(A>n) n=A;
  25. if(B>n) n=B;
  26. }
  27. //开始枚举
  28. for(i=1;i<=n;i++)
  29. {
  30. TAG=1;flag[i][i]=1;
  31. while(TAG)
  32. {
  33. TAG=0;
  34. for(j=1;j<=n;j++)//判断i公司是否能控制j公司
  35. {
  36. if(i==j)
  37. continue;
  38. if(flag[i][j]==1)
  39. continue;
  40. for(k=1;k<=n;k++)
  41. {
  42. if(flag[i][k]==1)
  43. {
  44. S+=map[k][j];
  45. }
  46. }
  47. if(S>50)
  48. {
  49. flag[i][j]=1;
  50. TAG=1;
  51. }
  52. S=0;
  53. }
  54. }
  55. }
  56. for(i=1;i<=n;i++)
  57. for(j=1;j<=n;j++)
  58. if(flag[i][j]==1&&i!=j)
  59. fout<<i<<' '<<j<<endl;
  60. return 0;
  61. }