记录编号 |
35608 |
评测结果 |
AAAAAAAAAA |
题目名称 |
课程安排问题 |
最终得分 |
100 |
用户昵称 |
TBK |
是否通过 |
通过 |
代码语言 |
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;
}