Pagini recente » Cod sursa (job #953797) | Cod sursa (job #2630655) | Cod sursa (job #1387362) | Cod sursa (job #42176) | Cod sursa (job #1128942)
// sortare topoligica
#include<iostream>
#include<fstream>
#include<vector>
#define pb push_back
#define DMAX 50005
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
bool viz[DMAX];
vector<vector<int> > G(DMAX);
vector<int> sol;
int n,m;
void DFS(int nod);
void SortareTopologica();
int main()
{
f>>n>>m;
for(int i=1;i<=m;i++)
{
int x,y;
f>>x>>y;
G[x].pb(y);
}
SortareTopologica();
for(vector<int>::reverse_iterator it=sol.rbegin();it!=sol.rend();it++)
g<<*it<<" ";
}
void SortareTopologica()
{
for(int i=1;i<=n;i++)
if(!viz[i])
DFS(i);
}
void DFS(int nod)
{
viz[nod]=true;
for(vector<int>::iterator it=G[nod].begin();it!=G[nod].end();it++)
if(!viz[*it])
DFS(*it);
sol.pb(nod);
}