Pagini recente » Cod sursa (job #1852147) | Cod sursa (job #409909) | Cod sursa (job #82726) | Cod sursa (job #3285285) | Cod sursa (job #1829528)
#include<fstream>
using namespace std;
ifstream f("ciclueuler.in");
ofstream g("ciclueuler.out");
int n,m,x,y,a[201][201],v[20100],ok,p=1;
void citire()
{
f>>n;
while(f>>x>>y)
if(a[x][y]==0)
{
m++;
a[x][y]=a[y][x]=1;
}
}
bool verif(int k)
{
if(a[v[k]][v[k-1]]<1) return false;
return true;
}
void bt(int k)
{
if(k==m+2 and v[k-1]==true) ok=1;
else
for(int i=1;i<=n and ok==0;++i)
{
v[k]=i;
if(verif(k))
{
a[v[k]][v[k-1]]=a[v[k-1]][v[k]]=-1;
bt(k+1);
a[v[k]][v[k-1]]=a[v[k-1]][v[k]]=1;
}
}
}
int main()
{
citire();
v[1]=1;
bt(2);g<<m+1<<endl;
for(int i=1;i<=m+1;++i)
g<<v[i]<<" ";
}