Pagini recente » Cod sursa (job #1724593) | Cod sursa (job #2264970) | Cod sursa (job #2413851) | Cod sursa (job #618872) | Cod sursa (job #1648342)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n, m, x, y, p, u;
bool gi[50010];
bool viz[50010];
vector<int> g[50010];
int coada[50010];
int main()
{
fin>>n>>m;
for(int i=1;i<=m;i++)
{
fin>>x>>y;
g[x].push_back(y);
gi[y]=1;
}
p=1;
u=0;
for(int i=1;i<=n;i++)
if(!gi[i] && g[i].size())
coada[++u]=i, viz[i]=1;
while(p<=u)
{
fout<<coada[p]<<' ';
for(int i=0; i<g[coada[p]].size(); i++)
if(!viz[g[coada[p]][i]])
coada[++u]=g[coada[p]][i], viz[g[coada[p]][i]]=1;
p++;
}
for(int i=1;i<=n;i++)
if(!viz[i])
fout<<i<<' ';
return 0;
}