Cod sursa(job #48972)

Utilizator rurutzairimia ruxandra maria rurutza Data 5 aprilie 2007 11:02:40
Problema Dame Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream.h>
#include<math.h>
ifstream f("dame.in");
ofstream g("dame.out");
int i,n,x[100],xf[100];
int succ(int k)
{
if(k<=n&&x[k]<n)
{
x[k]++;
return 1;
}
return 0;
}
int valid(int k)
{
int i;
for(i=1;i<k;i++)
if(x[i]==x[k]||abs(k-i)==abs(x[k]-x[i]))
return 0;
return 1;
}
int sol(int k)
{
if(k==n)
return 1;
return 0;
}
int afis(int k)
{
int i;
for(i=1;i<=k;i++)
xf[i]=x[i];
return 1;}
void back()
{
int i,k;
k=1;
x[k]=0;
while(k)
{
i=0;
while(i==0&&succ(k))
if(valid(k))
i=1;
if(i==0)
k--;
else
if(sol(k))
afis(k);
else
{
k++;
x[k]=0;
}}}
int main()
{
f>>n;
if(n==1||n>=4)
g<<n<<'\n';
else
g<<n-1<<'\n';
back();
for(i=1;i<=n;i++)
g<<i<<" "<<x[i]<<" "<<"\n";
f.close();
g.close();
return 0;
}