Cod sursa(job #1307640)
| Utilizator | Data | 2 ianuarie 2015 17:12:38 | |
|---|---|---|---|
| Problema | Problema Damelor | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 1.15 kb |
#include<iostream>
#include<fstream>
#include<algorithm>
#include<bitset>
#include<algorithm>
using namespace std;
bool b;
int cont;
ofstream so("damesah.out");
void afis(int n,int v[])
{
int i;
for(i=0;i<n;++i)
so<<v[i]+1<<' ';
b=true;
}
void dame(int n)
{
int p;
int v[n],i;
for(i=0;i<n;++i)
v[i]=-1;
p=0;
int j;
while(p>=0)
{
for(i=v[p]+1;i<n;++i)
{
for(j=0;j<p;++j)
{
if(i==v[j])
break;
if(v[j]+p-j==i)
break;
if(v[j]-p+j==i)
break;
}
if(j==p)
{
v[p]=i;
++p;
break;
}
}
if(i==n)
{
v[p]=-1;
--p;
}
if(p==n)
{
if(b==false)
afis(n,v);
++cont;
--p;
}
}
}
int main()
{
ifstream si;
si.open("damesah.in");
int n;
si>>n;
dame(n);
so<<'\n'<<cont<<'\n';
}
