#include<stdio.h>
#define N 20
int k;
int count=0;
int use[N+1];
int vis[N+1];
void dfs(int x){
int i,j,flag;
if(x>=2) count++;
if(x>k) return ;
for(i=1;i<=k;i++){
if(vis[i]) continue;
flag=0;
use[x]=i;
for(j=x;j>=2;j--)
if((use[j-1]-use[j-2])*(use[j]-use[j-2])>=0){
flag=1;break;
}
if(flag) continue;
vis[i]=1;
dfs(x+1);vis[i]=0;
}
}
int main(){
scanf("%d",&k);
dfs(0);
printf("%d",count);
return 0;
}
10-09
886
04-26
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交