Pagini recente » Cod sursa (job #2986814) | Cod sursa (job #1656075) | Cod sursa (job #2644751) | Cod sursa (job #2287006) | Cod sursa (job #2506089)
/*#include <bits/stdc++.h>
#define pb push_back
#define optimize ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#define ll long long
#define FILEIN "damesah.in"
#define FILEOUT "damesah.out"
using namespace std;
ifstream fin(FILEIN);
ofstream fout(FILEOUT);
void citire();
bool col[15];
int ans,n,s[15];
void rez();
int modul(int x)
{
if(x<0)
return -x;
return x;
}
bool valid(int k)
{
for(int i=1;i<k;i++)
if(modul(s[k]-s[i])==k-i)
return false;
return true;
}
void bkt(int);
void afis();
int main()
{
fin>>n;
bkt(1);
fout<<ans;
}
void bkt(int k)
{
if(k==n+1)
{
ans++;
if(ans==1)
afis();
}
else
for(int i=1;i<=n;i++)
{
if(col[i]==false)
{
s[k]=i;
col[i]=true;
if(valid(k))
bkt(k+1);
col[i]=false;
}
}
}
void afis()
{
for(int i=1;i<=n;i++)
fout<<s[i]<<" ";
fout<<'\n';
}
*/
#include <fstream>
using namespace std;
ifstream fin("damesah.in");
ofstream fout("damesah.out");
int n,a[15],b[15],v[15],sol,ok;
int modul(int x){
if(x<0)return -x;
return x;
}
int verif(int k){
for(int i=1;i<k;i++)
if(k-i==modul(a[k]-a[i]))return 0;
return 1;
}
void bk(int k){
if(k==n+1){
sol++;
if(!ok){
for(int i=1;i<=n;i++)
v[i]=a[i];
ok=1;
}
return;
}
for(int i=1;i<=n;i++)
if(!b[i]){
b[i]=1;
a[k]=i;
if(verif(k))
bk(k+1);
b[i]=0;
}
}
int main(){
fin>>n;
bk(1);
for(int i=1;i<=n;i++)
fout<<v[i]<<" ";
fout<<"\n"<<sol;
return 0;
}