比赛 20120224 评测结果 AAAAAAAAAA
题目名称 课程安排问题 最终得分 100
用户昵称 Czb。 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-02-26 20:23:17
显示代码纯文本
#include<stdio.h>

int n,t[2001],s[2001],ans[2001],e[2001][2001];

bool flag,b[101];

int main()
{
	freopen("curriculum.in","r",stdin);
	freopen("curriculum.out","w",stdout);
	int i,j,k;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&s[i]);
		for(j=1;j<=s[i];j++)
		{
			scanf("%d",&k);
			t[k]++;
			e[k][t[k]]=i;
		}
	}
	for(i=1;i<=n;i++)
	{
		flag=true;
		for(j=1;j<=n;j++)
		{
			if(s[j]==0&&b[j]==false)
			{
				ans[i]=j;
				b[j]=true;
				flag=false;
				for(k=1;k<=t[j];k++)
				{
					s[e[j][k]]--;
				}
				break;
			}
		}
		if(flag)
		{
			printf("no\n");
			return 0;
		}
	}
	for(i=1;i<=n;i++)
	{
		printf("%d ",ans[i]);
	}
	printf("\n");
	return 0;
}