记录编号 35614 评测结果 AAAAAAAAAA
题目名称 课程安排问题 最终得分 100
用户昵称 Gravatar苏轼 是否通过 通过
代码语言 C++ 运行时间 0.008 s
提交时间 2012-02-26 18:04:02 内存使用 0.31 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
int n,o=0,answer[101];
int q[101][101];
int number[101]={0};
bool used[101];
int main()
{
	freopen ("curriculum.in","r",stdin);
	freopen ("curriculum.out","w",stdout);
	cin>>n;
	for (int i=1;i<=n;i++)
	{
		int a;
		cin>>a;
		for (int j=0;j<a;j++)
		{
			int b;
			cin>>b;
			number[i]++;
			q[i][number[i]]=b;
		}
		used[i]=true;
	}
	int a;
	a=n;
	while (a>0)
	{
		int b=-1;
		for (int i=1;i<=n;i++)
		{
			if (number[i]==0&&used[i])
			{
				b=i;
				break;
			}
		}
		if (b==-1&&a>=1)
		{
			cout<<"no";
			exit(0);
		}
		for (int i=1;i<=n;i++)
		{
			if (i==b)
				continue;
			for (int j=1;j<=n;j++)
			{
				if (q[i][j]==b)
				{
					q[i][j]=0;
					number[i]--;
				}
			}
		}
		o++;
		answer[o]=b;
		a--;
		used[b]=0;
	}
	for (int i=1;i<=n;i++)
		cout<<answer[i]<<' ';
	return 0;
}