if( t0!=l2 )
{
if(t0==1)
{
if(t1==2)
{
if(a[last(a,n)]
{
return true;
}
else
{
return false;
}
}
else if(t1==3)
{
if(a[last(a,n)]
{
return true;
}
else
{
return false;
}
}
}
if(t0==2)
{
if(t1==1)
{
if(b[last(b,n)]
{
return true;
}
else
{
return false;
}
}
else if(t1==3)
{
if(b[last(b,n)]
{
return true;
}
else
{
return false;
}
}
}
if(t0==3)
{
if(t1==1)
{
if(c[last(c,n)]
{
return true;
}
else
{
return false;
}
}
else if(t1==2)
{
if(c[last(c,n)]
{
return true;
}
else
{
return false;
}
}
}
}
return false;
}
bool isFinished(int *a,int *b,int *c,int size)
{
bool ii=true;
for(int i=0;i
{
if(b[i]==size+1)
{
ii=false;
}
}
if(ii)return ii;
ii=true;
for(int i=0;i
{
if(c[i]==size+1)
{
ii=false;
}
}
return ii;
}
int main()
{
int *a=new int[6];
for(int i=1;i<=6;i++)
{
a[i-1]=i;
}
int **jj=new int*[fact(6)];
Set(jj,Jaygasht(a,6),6);
int *b,*c;
char last2;
int levels=0 , level=0 , levelNumber=0 , minLevel=0 , t0 , t1 ;
char*mm[6];
for(int i=0;i<6;i++)
{
mm[i]=new char[3];
}
char**mode=new char*[6];
for(int i=0;i<=6;i++)
{
mode[i]=new char[3];
}
mode[0][0]='A';mode[0][1]='B';mode[0][2]='\0';
mode[1][0]='A';mode[1][1]='C';mode[1][2]='\0';
mode[2][0]='B';mode[2][1]='A';mode[2][2]='\0';
mode[3][0]='B';mode[3][1]='C';mode[3][2]='\0';
mode[4][0]='C';mode[4][1]='A';mode[4][2]='\0';
mode[5][0]='C';mode[5][1]='B';mode[5][2]='\0';
int n;
cout<<"Enter number of discs:"<
cin>>n;
while( levels<720 )
{
for(int i=0;i<6;i++)
{
mm[i][0]=mode[ jj[levels][i]-1 ][0];
mm[i][1]=mode[ jj[levels][i]-1 ][1];
mm[i][2]=mode[ jj[levels][i]-1 ][2];
cout<
}
cout<<" ";
levels++;
level=0;
last2='-';
a=new int[n];
b=new int[n
]
;
c=new int[n];
for(int i=0;i
{
a[i]=n-i;
b[i]=n+1;
c[i]=n+1;
}
while(!isFinished(a,b,c,n) )
{
for(int i=0;i<6;i++)
{
switch(mm[i][0])
{
case 'A' : t0=1;break;
case 'B' : t0=2;break;
case 'C' : t0=3;break;
}
switch(mm[i][1])
{
case 'A' : t1=1;break;
case 'B' : t1=2;break;
case 'C' : t1=3;break;
}
if(can(mm,i,a,b,c,n,last2))
{
if(t0==1)
{
if(t1==2)
{
if(b[last(b,n)]==n+1)
b[last(b,n)]=a[last(a,n)];
else
b[last(b,n)+1]=a[last(a,n)];
a[last(a,n)]=n+1;
last2='B';
}
if(t1==3)
{
if(c[last(c,n)]==n+1)
c[last(c,n)]=a[last(a,n)];
else
c[last(c,n)+1]=a[last(a,n)];
a[last(a,n)]=n+1;
last2='C';
}
}
if(t0==2)
{
|