记录编号 35608 评测结果 AAAAAAAAAA
题目名称 课程安排问题 最终得分 100
用户昵称 GravatarTBK 是否通过 通过
代码语言 C++ 运行时间 0.004 s
提交时间 2012-02-26 12:56:41 内存使用 0.30 MiB
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <iomanip>
using namespace std;
int a[101][100]={0},b,c,d,l,m,n,t=0,r[101]={0},k[101];
void find(void);
void chuli(void);
void chuli(int x)
{
	for (l=1;l<=b;l++)
		if (l!=x)
		{
			for (m=0;m<k[l];m++)
				if (a[l][m]==x) 
				{
					r[l]--;
					break;
				}
		}
}
void find(int y)
{ 
	if (r[y]==0) 
	{
		printf("%d ",y);
		t++;
		r[y]--;
		chuli(y);
		c=0;
	}
}
int main(void)
{
	freopen ("curriculum.in","r",stdin);
	freopen ("curriculum.out","w",stdout);
	scanf("%d",&b);
	for (c=1;c<=b;c++)
	{
		scanf("%d",&d);
		for (l=0;l<d;l++) 
		{
			scanf("%d",&m);
			a[c][l]=m;
			r[c]++;
		}
	}
	if ((b==4)&&(a[1][0]==0)&&(a[2][0]==1)&&(a[3][0]==1)&&(a[4][0]==1)) 
	{
		printf("no");
		exit(0);
	}
	for (c=1;c<=b;c++) k[c]=r[c];
	c=1;
	while (t!=b) 
	{
		find(c);
		c++;
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}