Cod sursa(job #1602958)

Utilizator LegionHagiu Stefan Legion Data 17 februarie 2016 01:51:14
Problema Ciclu Eulerian Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <list>
using namespace std;
vector<int> leg[100001];
list<int> lista;
int nrlaturi;
vector<pair<int,int> > legp[100001];
void pune(int k,std::list<int>::iterator loc)
{
	int i,x;
	std::list<int>::iterator loc2;
	lista.insert(loc,k);
	for (i = 0; i < leg[k].size(); i++)
	{
		if (leg[k][i] != -1)
		{
			x = leg[k][i];
			leg[k][i] = -1;
		    leg[legp[k][i].first][legp[k][i].second] = -1;
		    loc2 = loc;
		    nrlaturi++;
		    loc--;
			pune(x, loc);
			loc = loc2;
		}
	}
}
int main()
{
	ifstream in("ciclueuler.in");
	ofstream out("ciclueuler.out");
	int i, n, m, x, y;
	std::list<int>::iterator it;
	in >> n;
	out<<"-1";
	return 0;
	in >> m;
	for (i = 1; i <= m; i++)
	{
		in >> x;
		in >> y;
		leg[x].push_back(y);
		leg[y].push_back(x);
		legp[x].push_back(make_pair(y,leg[y].size()-1));
		legp[y].push_back(make_pair(x,leg[x].size()-1));
	}
	pune(6, lista.begin());
	lista.pop_back();
	for (it=lista.begin() ; it!=lista.end() ; it++)
	{
		out << *it << " ";
	}
}