记录编号 107704 评测结果 AAAAAAAAA
题目名称 [USACO 2.3.5]控制公司 最终得分 100
用户昵称 Gravatarraywzy 是否通过 通过
代码语言 C++ 运行时间 0.086 s
提交时间 2014-06-29 09:34:18 内存使用 0.50 MiB
显示代码纯文本
#include<fstream>
using namespace std;
ifstream fin("concom.in");
ofstream fout("concom.out");
int map[200][200];
bool flag[200][200];
int N;
int main()
{
	fin>>N;
	int n=0;
	int i,A,B,C,j,k;
	int S=0;
	bool TAG=0;
	for(i=1;i<=N;i++)
	{
		fin>>A>>B>>C;
		if(flag[A][B]==1)
		{	if(map[A][B]>C)
				continue;}
		map[A][B]=C;
		if(C>50)
			flag[A][B]=1;
		if(A>n) n=A;
		if(B>n) n=B;
	}
	//开始枚举
	for(i=1;i<=n;i++)
	{
		TAG=1;flag[i][i]=1;
		while(TAG)
		{
			TAG=0;
			for(j=1;j<=n;j++)//判断i公司是否能控制j公司
		{
			if(i==j)
				continue;
			if(flag[i][j]==1)
				continue;
			for(k=1;k<=n;k++)
			{
				if(flag[i][k]==1)
				{
					S+=map[k][j];
				}
			}
			if(S>50)
			{
				flag[i][j]=1;
				TAG=1;
			}
			S=0;
		}
		}
	}
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			if(flag[i][j]==1&&i!=j)
				fout<<i<<' '<<j<<endl;
	return 0;
}