68分
查看原帖
68分
1388054
qjy1024楼主2024/7/24 19:23
#include <bits/stdc++.h>
#define MAXN (signed)(1e3+10)
#define pr() putchar('\n')
#define ps() putchar(' ')
using namespace std;
int read()
{
    int nm=0,zf=1;char c=getchar();
    for(;!isdigit(c);c=getchar())if(c=='-')zf=-1;
    for(;isdigit(c);c=getchar())nm=nm*10+(c-'0');
    return nm*zf;
}
void write(int x)
{
    if(x>10)write(x/10);
    putchar(x%10+'0');
}
int r[MAXN];
vector<int>G[MAXN];
queue<int>q;
signed main()
{
    int n=read();
    for(int i=1;i<=n;i++)
    {
        int k=read();
        while(k!=0)
        {
            G[i].push_back(k);
            k=read();
        }
        
    }
    for(int i=1;i<=n;i++)
    {
        for(auto v:G[i])
        {
            r[v]++;
        }
    }
    for(int i=1;i<=n;i++)
    {
        if(r[i]==0)q.push(i);
    }
    while(!q.empty())
    {
        int u=q.front();
        q.pop();
        write(u);ps();
        for(auto v:G[u])
        {
            r[v]--;
            if(r[v]==0)
            {
                q.push(v);
            }
        }
    }
    return EXIT_SUCCESS;
}
2024/7/24 19:23
加载中...