Pagini recente » Cod sursa (job #871344) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #757686) | Cod sursa (job #2601040)
#include <bits/stdc++.h>
#define NMAX 50009
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n,m,contsol,sol[NMAX];
struct nodd
{
int nrparinti;
vector <int> copii;
} nod[NMAX];
int main()
{
int i,j,a,b;
bool ok;
fin>>n>>m;
for(i=1; i<=m; i++)
{
fin>>a>>b;
nod[a].copii.push_back(b);
nod[b].nrparinti++;
}
do
{
ok=0;
for(i=1; i<=n&&ok==0; i++)
if(nod[i].nrparinti==0)
{
ok=1;
sol[++contsol]=i;
nod[i].nrparinti=-1;
for(auto j=nod[i].copii.begin(); j!=nod[i].copii.end(); j++)
nod[*j].nrparinti--;
}
}while(ok==1);
for(i=1; i<=n; i++)
fout<<sol[i]<<' ';
return 0;
}