Pagini recente » Cod sursa (job #2237552) | Cod sursa (job #1046026) | Cod sursa (job #1277522) | Cod sursa (job #673461) | Cod sursa (job #2373970)
#include <cstdio>
#include <vector>
using namespace std;
const int Maxn=50001;
int pred[Maxn],q[Maxn-1],sf;
vector <int> v[Maxn];
int main()
{
FILE *fin,*fout;
fin=fopen("sortaret.in","r");
fout=fopen("sortaret.out","w");
int n,m,x,y;
fscanf(fin,"%d%d",&n,&m);
for(int i=0;i<m;i++)
{
fscanf(fin,"%d%d",&x,&y);
v[x].push_back(y);
pred[y]++;
}
for(int i=1;i<=n;i++)
if(!pred[i])
q[sf++]=i;
for(int i=0;i<n;i++)
{
x=q[i];
for(size_t j=0;j<v[x].size();j++)
{
y=v[x][j];pred[y]--;
if(!pred[y])
q[sf++]=y;
}
fprintf(fout,"%d ",x);
}
fclose(fin);
fclose(fout);
return 0;
}