Mai intai trebuie sa te autentifici.
Cod sursa(job #1502762)
Utilizator | Data | 14 octombrie 2015 23:38:24 | |
---|---|---|---|
Problema | Sortare topologica | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.62 kb |
#include <fstream>
#include <bits/stdc++.h>
#include <vector>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
vector <int> G[50001];
int i,x,y,n,m,viz[50001],poz,a[50001];
void DFS (int nod)
{
viz[nod]=1;
for (int i=0;i<G[nod].size();i++)
if (viz[G[nod][i]]==0)
DFS(G[nod][i]) ;
a[++poz]=nod;
}
int main()
{
f>>n>>m;
for(int i=1;i<=m;i++)
{
f>>x>>y;
G[x].push_back(y);
}
for(int i=1;i<=n;i++)
if(viz[i]==0)
DFS(i);
for(int i=poz;i>=1;i--)
g<<a[i]<<" ";
return 0;
}