Cod sursa(job #1036514)

Utilizator mircea.dobreanuMircea Dobreanu mircea.dobreanu Data 19 noiembrie 2013 14:04:59
Problema Componente tare conexe Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include<fstream>
#include<vector>
#include<stack>
using namespace std;
const int MAXN = 100005;
int n,m;
bool mod,uz[MAXN];
vector<int> g[MAXN],t[MAXN],sol[MAXN];
stack<int> s;
void read()
{
	ifstream fin("ctc.in");
	fin>>n>>m;
	int i,x,y;
	for (i=1; i<=m; ++i)
	{
		fin>>x>>y;
		g[x].push_back(y);
		t[y].push_back(x);
	}
	fin.close();
}
void dfs_visit(int u, vector<int>* graf)
{
	s.push(u);
	uz[u]=1;
	for (vector<int>::iterator v=graf[u].begin(); v!=graf[u].end(); ++v)
	{
		if (!uz[*v])
		{
			dfs_visit(*v,graf);
		}
	}
}
void dfs(vector<int>* graf)
{
	int i;
	for (i=1; i<=n; ++i)
	{
		if (!uz[i])
		{
			dfs_visit(i,graf);
		}
	}
}
void write()
{
	ofstream fout("ctc.out");
	while (!s.empty())
	{
		fout<<s.top()<<' ';
		s.pop();
	}
	fout.close();
}
int main()
{
	read();
	dfs(g);
	for (int i=1,mod=1; i<=n; uz[i]=false, ++i);
	dfs(t);
	write();
    return 0;
}