Pagini recente » Cod sursa (job #1692170) | Cod sursa (job #2210549) | Cod sursa (job #2487685) | Cod sursa (job #83181) | Cod sursa (job #2479879)
#include <bits/stdc++.h>
#define NMAX 100005
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector<int>v[NMAX];
vector<int>sol[NMAX];
int d[NMAX];
int main()
{
int n,m,x,y;
fin>>n>>m;
for(int i=1;i<=m;++i)
{
fin>>x>>y;
v[x].push_back(y);
d[y]++;
}
int ok=0,niv=0;
do{
niv++;
ok=0;
for(int i=1;i<=n;++i)
if(d[i]==0) {
sol[niv].push_back(i);
ok=1;
d[i]=-1;
}
for(vector <int> :: iterator it = sol[niv].begin(); it!=sol[niv].end();++it)
{
for(vector<int>::iterator fiu = v[*it].begin();fiu != v[*it].end();++fiu)
d[*fiu]--;
}
}while(ok==1);
for(int i=1;i<niv;++i)
{
for(auto x:sol[i])
fout<<x<<" ";
}
return 0;
}