Mai intai trebuie sa te autentifici.
Cod sursa(job #206579)
Utilizator | Data | 7 septembrie 2008 21:11:38 | |
---|---|---|---|
Problema | Dame | Scor | 15 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include<stdio.h>
#include<stdlib.h>
int n,sol;
int s[1001];
void btk(){
int up,k,i,ok;
k=1;
s[k]=0;
while(k){
up=0;
while(!up&&s[k]<n){
s[k]++;
ok=1;
for(i=1;i<k&&ok;++i)
if(s[k]==s[i]||(k-i)==abs(s[k]-s[i])) ok=0;
if(ok) up=1;
}
if(up)
if(k==n) {sol=1;break;}
else k++,s[k]=0;
else k--;
}
}
int main(){
freopen("dame.in","r",stdin);
freopen("dame.out","w",stdout);
int i;
scanf("%d",&n);
btk();
if(sol){
printf("%d\n",n);
for(i=1;i<=n;++i)
printf("%d %d\n",i,s[i]);
}
return 0;
}