比赛 20100914 评测结果 WWAWWWWWWW
题目名称 关键子工程 最终得分 10
用户昵称 郭乾乐 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2010-09-14 22:45:59
显示代码纯文本
#include<iostream>
#include<fstream>
using namespace std;

struct sss
{
	int fu[201],zi[201],t;
};

int main()
{
	ifstream fin("project.in");
	ofstream fout("project.out");
	int x,t[201],n,i,j,fu[201],zi[201],fuu[201],shi=0,pan[201],sum=0,dd[200],m=-1,zhong;
	for(i=0;i<201;i++)
	{
		fu[i]=0;
		zi[i]=0;
		t[i]=0;
		pan[i]=true;
	}
	sss a[201];
	fin>>n;
	for(i=0;i<n;i++) fin>>t[i];
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
		{
			if(i!=j) 
			{
			fin>>x;
			if(x==1)
			{
				fu[i]++;
			    a[i].fu[fu[i]-1]=j;
			    zi[j]++;
				a[j].zi[zi[j]-1]=i;
			}
			}
		}
	for(i=0;i<=200;i++) fuu[i]=fu[i];
	do
	{
		shi++;
		m=-1;
		for(i=0;i<n;i++)
			if(fu[i]==0&&pan[i])
			{
				a[i].t++;
				if(a[i].t==t[i])
				{
					pan[i]=false;
					sum++;
					if(sum==n)
						zhong=i;
					for(j=0;j<zi[i];j++)
				    fu[a[i].zi[j]]--;
					m++;
					pan[a[i].zi[j]]=false;
					dd[m]=a[i].zi[j];
				}
			}
		for(j=0;j<=m;j++)
			pan[dd[j]]=true;
		if(shi>=20000) break;
	}
	while(sum<n);
	if(shi<20000)
	{
		fout<<shi<<endl;
		for(i=1;i<fuu[zhong];i++)
			fout<<a[zhong].fu[i]<<' ';
		fout<<zhong+1;
	}
	else fout<<-1;
	fout<<endl;
	return 0;
}