Pagini recente » Cod sursa (job #386237) | Cod sursa (job #1008893) | Cod sursa (job #568060) | Cod sursa (job #1886777) | Cod sursa (job #2126494)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int q[500002],gr_ex[500002];
vector <int> g[500002];
int n,m,i,j,a,b,x;
void read()
{
in>>n>>m;
for(i=1;i<=m;i++)
{
in>>a>>b;
g[a].push_back(b);
gr_ex[b]++;
}
}
void solve()
{
vector<int>::iterator it;
for(i=1;i<=n;i++)
{
if(gr_ex[i]==0)
{
q[++q[0]]=i;
}
}
for(i=1;i<=n;i++)
{
x=q[i];
for(it=g[x].begin();it!=g[x].end();++it)
{
gr_ex[*it]--;
if(gr_ex[*it]==0)
{
q[++q[0]]=*it;
}
}
}
}
void write()
{
for(i=1;i<=n;i++)
{
out<<q[i]<<" ";
}
}
int main()
{
read();
solve();
write();
return 0;
}