#include #include int n,num[15],lim; bool flag; int h() { int i,r=0; if(num[0]!=1) r++; if(num[n-1]!=n) r++; for(i=0;i=lim) return; if(cnt+ceil(h()/3.0)>lim) return; int len,pos,j,p,temp[15]; for(i=0;i=n) break; if(p==i) p+=len; num[j++]=temp[p++]; } dfs(cnt+1); } } } for(i=0;i