Pagini recente » Cod sursa (job #717204) | Cod sursa (job #2229476) | Cod sursa (job #2089886) | Cod sursa (job #1696902) | Cod sursa (job #776529)
Cod sursa(job #776529)
#include<fstream>
#include<vector>
#define NMAX 50010
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
vector<int> a[NMAX];
int n, m, ord[NMAX], vz[NMAX], nr[NMAX];
void Citeste()
{
int i, x, y;
f>>n>>m;
for (i=1; i<=m; ++i)
{
f>>x>>y;
a[x].push_back(y); ++nr[x];
}
}
void DFS(int nod)
{
int i, f;
vz[nod]=1;
for (i=0; i<nr[nod]; ++i)
{
f=a[nod][i];
if (!vz[f]) DFS(f);
}
ord[++ord[0]]=nod;
}
void Solve()
{
int nod;
for (nod=1; nod<=n; ++nod)
if (!vz[nod]) DFS(nod);
}
void Scrie()
{
int i;
for (i=n; i>0; --i) g<<ord[i]<<" ";
}
int main()
{
Citeste();
Solve();
Scrie();
f.close();
g.close();
return 0;
}