Pagini recente » Cod sursa (job #2937233) | Cod sursa (job #561419) | Cod sursa (job #1007849) | Cod sursa (job #1557427) | Cod sursa (job #2663162)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream citire("sortaret.in");
ofstream afisare("sortaret.out");
vector<int>nod;
vector<vector<int>>g(50001);//matricea de adiacenta
vector<bool>viz(50001);//vector noduri vizitate
void dfs(int n)
{
viz[n] = true;
for(int i=0; i<g[n].size(); i++)
if(viz[g[n][i]]==false)
dfs(g[n][i]);
nod.push_back(n);
}
int main()
{
int vf,arc,a,b,i;
citire>>vf>>arc;
for( i=0; i<arc; i++)
{
citire>>a>>b;
g[a].push_back(b);
}
for( i=0;i<vf; i++)
if(viz[i]==false)
dfs(i);
for( i=nod.size()-1; i>=0; i--)
afisare<<nod[i]<<" ";
}