Cod sursa(job #46333)

Utilizator rurutzairimia ruxandra maria rurutza Data 2 aprilie 2007 15:57:15
Problema 12-Perm Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<fstream.h>
#include<math.h>
ifstream f("12perm.in");
ofstream g("12perm.out");
long nr,i,n,x[10000];
int succ(int k)
{
if(k<=n&&x[k]<n)
{
x[k]++;
return 1;
}
return 0;
}
int valid(int k)
{
int a,i;
a=abs(x[k]-x[k-1]);
if(a>=3&&k>1)
return 0;
for(i=1;i<k;i++)
if(x[i]==x[k])
return 0;
return 1;
}
int sol(int k)
{
if(k==n)
return 1;
return 0;
}
void afis()
{
nr++;
}
void back()
{
int i,k;
k=1;
x[1]=0;
while(k)
{
i=0;
while(i==0&&succ(k))
if(valid(k))
i=1;
if(i==0)
k--;
else
if(sol(k))
afis();
else
{
k++;
x[k]=0;
}}}
int main()
{
f>>n;
nr=0;
back();
g<<nr<<"\n";
f.close();
g.close();
return 0;
}