| 记录编号 | 
        35580 | 
        评测结果 | 
        AAAAAAAAAA | 
    
    
        | 题目名称 | 
        644.课程安排问题 | 
        最终得分 | 
        100 | 
            
    
    
        | 用户昵称 | 
         王者自由 | 
        是否通过 | 
        通过 | 
    
    
        | 代码语言 | 
        C++ | 
        运行时间 | 
        0.003 s  | 
    
    
        | 提交时间 | 
        2012-02-26 09:21:49 | 
        内存使用 | 
        0.35 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		#include <cstdio>
#include <cstring>
int n, m, w;
bool v[10010], G[210][210], t;
int in[10010], s[220];
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]) {
                s[++s[0]] = 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;
    }
    for(int i=1; i<=s[0]; i++)
        printf("%d ", s[i]);
    goto end;
no:
    printf("no");
end:
    printf("\n");
    return 0;
}