Cod sursa(job #837694)
| Utilizator | Data | 18 decembrie 2012 15:02:37 | |
|---|---|---|---|
| Problema | 12-Perm | Scor | 5 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
#include<cstdio>
#include<cstdlib>
int n,c,fol[20],sc[20];
void back(int poz){
if(poz==n+1){
++c;
//for(int i=1;i<=n;++i)printf("%d ",sc[i]);
// printf("\n");
return;
}
for(int i=1;i<=n;++i){
if(fol[i]==0&&(abs(sc[poz-1]-i)<3||poz==1)){
fol[i]=1;
sc[poz]=i;
back(poz+1);
fol[i]=0;
}
}
}
int main (){
freopen("12perm.in","r",stdin);
freopen("12perm.out","w",stdout);
scanf("%d",&n);
back(1);
printf("%d\n",c);
return 0;
}
