Nu aveti permisiuni pentru a descarca fisierul grader_test2.ok
Cod sursa(job #1947532)
| Utilizator | Data | 31 martie 2017 00:28:39 | |
|---|---|---|---|
| Problema | Problema Damelor | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 1.28 kb |
#include<fstream>
#include<string.h>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n,ma,rez,t,p,m,b;
char x[10][10],d;
int y[20][20];
int v[20];
void ve(int nr,int v[20],int i)
{ int d,j;
if(nr==n)
{rez++;
if(rez==1){
for(j=1;j<=n;j++)
fout<<v[j]<<' ';
fout<<'\n';}
return;
}
for(j=1;j<=n;j++)
if(y[i][j]==0)
{
y[i][j]++;
nr++;
v[nr]=j;
for(d=1;d<=n;d++)
{
y[i][d]++;
y[d][j]++;
}
int e=j;
for(d=i+1;d<=n;d++)
{
e++;
if(e<=n)
y[d][e]++;
else
break;
}
e=j;
for(d=i+1;d<=n;d++)
{
e--;
if(e>=1)
y[d][e]++;
else break;
}
ve(nr,v,i+1);
nr--;
y[i][j]--;
for(d=1;d<=n;d++)
{
y[i][d]--;
y[d][j]--;
}
e=j;
for(d=i+1;d<=n;d++)
{
e++;
if(e<=n)
y[d][e]--;
else
break;
}
e=j;
for(d=i+1;d<=n;d++)
{
e--;
if(e>=1)
y[d][e]--;
else break;
}
}
}
int main()
{fin>>n;
ve(0,v,1);
fout<<rez;
}
