2009年11月6日 星期五

TIOJ 1020 F.Number Insertion

poao899    -8K    763MS    G++     0.66K     2009-11-06 15:20:51                                 .

唔沒什麼好說的


暴力,不用特別cut...

//*****************************

#include<stdio.h>
#define sw(a,b) {int tmp=a;a=b;b=tmp;}
int arr[50],best[50],n,cnt;
void dfs(int now){
if(now>n){
cnt++;
for(int i=0;i<now;i++){
if(arr[i]<best[i])return;
else if(arr[i]>best[i]){
for(int j=0;j<now;j++){
best[j]=arr[j];
}
}
}
return;
}
arr[now]=now;
for(int i=now-1;i>0;i--){
sw(arr[i],arr[i+1]);
if(arr[i]%(arr[i+1]+arr[i-1])==0){
dfs(now+1);
}
}
sw(arr[0],arr[1]);
for(int i=0;i<now;i++)
arr[i]=arr[i+1];
}
main(){
scanf("%d",&n);
if(!n)return 0;
arr[0]=0;arr[1]=1;
dfs(2);
printf("%d\n",cnt);
for(int i=0;i<=n;i++,putchar((i<=n)?32:'\n'))
printf("%d",best[i]);
}


沒有留言:

張貼留言