比赛 20120224 评测结果 AAAAAAAAAW
题目名称 课程安排问题 最终得分 90
用户昵称 王者自由 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-02-24 19:38:59
显示代码纯文本
#include <cstdio>
#include <cstring>
int n, m, w;
bool v[10010], G[210][210], t;
int in[10010];
int main() {
    freopen("curriculum.in", "r", stdin);
    freopen("curriculum.out", "w", stdout);
    scanf("%d", &n);
    for(int i=1; i<=n; i++) {
        scanf("%d", &m);
        for(int j=1; j<=m; j++) {
            scanf("%d", &w);
            G[w][i] = true;
            in[i]++;
        }
    }
    for(int i=1; i<=n; i++)
        v[i] = true;
    for(int i=1; i<=n; i++) {
        t = false;
        for(int j=1; j<=n; j++)
            if(!in[j] && v[j]) {
                printf("%d ", j);
                v[j] = false;
                for(int k=1; k<=n; k++)
                    if(G[j][k]) {
                        G[j][k] = false;
                        in[k]--;
                    }
                t = true;
                break;
            }
        if(!t)
            goto no;
    }
    goto end;
no:
    printf("no");
end:
    printf("\n");
    return 0;
}