Pagini recente » Cod sursa (job #1109663) | Cod sursa (job #582713) | Cod sursa (job #1437313) | Cod sursa (job #1231853) | Cod sursa (job #395083)
Cod sursa(job #395083)
#include<iostream.h>
#include<fstream.h>
int a[50][50],n,i,j,x[50],k,sol;
ifstream f("hamilton.in");
void citire(){
f>>n;
while(f>>i>>j)
a[i][j]=a[j][i]=1;
}
void tipar(int k){
for(i=1;i<=k;i++)
cout<<x[k]<<" ";
cout<<endl;
}
int cont(int k){
if(a[x[k]][x[k-1]]==0)
return 0;
for(i=1;i<k;i++)
if(x[i]==x[k])
return 0;
if(k==n)
if(a[x[k]][x[1]]==0)
return 0;
return 1;
}
void back(){
x[1]=1;
k=2;
x[k]=1;
while(k>1)
if(x[k]<n){
x[k]++;
if(cont(k))
if(k==n){
sol=1;
tipar(k);
}
else x[++k]=1;
}
else k--;
}
int main(){
citire();
back();
if(sol==0)
cout<<"nu este solutie";
return 0;
}