Pagini recente » Cod sursa (job #123385) | Cod sursa (job #1304545) | Cod sursa (job #363451) | Cod sursa (job #1501917) | Cod sursa (job #2867556)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("euler.in");
ofstream g("euler.out");
int n;
vector<int> G[201], L;
vector<pair<int,int>> M;
vector<bool> elim;
void Euler(int k)
{
for(auto x:G[k])
{
//x = indicele muchiei
//M[x].first=k
//M[x].second=cealalta extremitate
if(!elim[x])
{
elim[x]=1;
int p=M[x].second;
if(p==k)
p=M[x].first;
Euler(p);
}
}
L.push_back(k);
}
int main()
{
int i,j;
f>>n;
while(f>>i>>j)
{
M.push_back({i,j});
elim.push_back(false);
G[i].push_back(M.size()-1);
G[j].push_back(M.size()-1);
}
Euler(1);
g<<L.size()<<'\n';
for(auto k:L)
g<<k<< " ";
return 0;
}