Pagini recente » Cod sursa (job #1065014) | Cod sursa (job #2968407) | Cod sursa (job #542430) | Cod sursa (job #1180160) | Cod sursa (job #1846971)
#include <fstream>
#define nmax 50001
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int gint[nmax],n,m,c[nmax],viz[nmax],ct;
vector<int>V[nmax];
void Citire()
{ fin>>n>>m;
int i,x,y;
for(i=1;i<=m;i++)
{ fin>>x>>y;
V[x].push_back(y);
gint[y]++;
}
}
void sortaret()
{ int i;
vector<int>::iterator it;
while(ct!=n)
{
for(i=1;i<=n;i++)
if(gint[i]==0 && viz[i]==0)
c[++ct]=i;
for(i=1;i<=ct;i++)
if(viz[c[i]]==0)
{ viz[c[i]]=1;
for(it=V[c[i]].begin();it!=V[c[i]].end();++it)
gint[*it]--;
}
}
}
int main()
{
Citire();
sortaret();
int i;
for(i=1;i<=ct;i++)
fout<<c[i]<<" ";
return 0;
}