Cod sursa(job #1442858)

Utilizator TheHolyArkCristian Petrescu TheHolyArk Data 26 mai 2015 14:45:44
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include<iostream>
#include<fstream>
#include<vector>

using namespace std;

void bfs(vector< vector<int> > v, vector< vector<int> >& viz, int nod, ofstream& g)
{
	for (int j = 0; j < v[nod].size(); j++)
	{
		for (int q = 0; q < viz[nod].size(); q++)
		if (viz[nod][q] == v[nod][j])
			goto skip;
		g << nod << " ";
		viz[nod].push_back(v[nod][j]);
		bfs(v, viz, v[nod][j],g);
	skip:;
	}
}

int main()
{
	int n, m, i, j, nod1, nod2, flag = 1;
	ifstream f("euler_in.txt");
	f >> n >> m;
	vector< vector<int> > v(n + 1);
	vector< vector<int> > viz(n + 1);
	for (i = 0; i < m; i++)
	{
		f >> nod1 >> nod2;
		v[nod1].push_back(nod2);
	}
	for (i = 1; i <= n; i++)
	for (j = 0; j < v[i].size(); j++)
		cout << "v[" << i << "][" << j << "]= " << v[i][j]<<"\n";
	ofstream g("euler_out.txt");

	for (i = 1; i <= n; i++)
	{
		for (j = 0; j < v[i].size(); j++)
		{
			for (int q = 0; q < viz[i].size(); q++)
				if (viz[i][q]==v[i][j])
					goto skip;
				g << i << " ";
				viz[i].push_back(v[i][j]);
				bfs(v, viz, v[i][j],g);
			skip:;
		}
	}
	f.close();
	g.close();
	system("PAUSE");
	return 0;
}