Pagini recente » Cod sursa (job #565640) | Cod sursa (job #1672516) | Cod sursa (job #68789) | Cod sursa (job #2357855) | Cod sursa (job #1368307)
#include<iostream>
#include<fstream>
#include<vector>
#define NMAX 50001
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector<int>g[NMAX];
int n,m,grad[NMAX];
int cd[NMAX],ct=0;
void read()
{
fin>>n>>m;
int x,y;
for(int i=1;i<=m;i++)
{
fin>>x>>y;
g[x].push_back(y);
grad[y]++;
}
fin.close();
}
void solve()
{ int x;
for(int i=1;i<=n;i++)
{
if(!grad[i])cd[++ct]=i;
}
for(int i=1;i<=n;i++)
{
x=cd[i];
for(int j=0;j<g[x].size();j++)
{
grad[g[x][j]]--;
if(!grad[g[x][j]])cd[++ct]=g[x][j];
}
}
}
int main()
{
read();
solve();
for(int i=1;i<=ct;i++)
fout<<cd[i]<<" ";
fout.close();
return 0;
}