比赛 |
20160708BDFS |
评测结果 |
AAAAAAAAAA |
题目名称 |
跳棋的挑战 |
最终得分 |
100 |
用户昵称 |
Arrow |
运行时间 |
1.579 s |
代码语言 |
C++ |
内存使用 |
0.31 MiB |
提交时间 |
2016-07-08 08:50:01 |
显示代码纯文本
#include<fstream>
using namespace std;
int n,c=0,m;
unsigned q[15];
ofstream fo("checker.out");
ifstream fi("checker.in");
void qi(unsigned s,unsigned l,unsigned r,unsigned i);
int main()
{
fi>>n;
m=(1<<n)-1;
qi(0,0,0,1);
fo<<c;
return 0;
}
void qi(unsigned s,unsigned l,unsigned r,unsigned i)
{
if(i==n+1)
{
c++;
if(c<=3)
{
for(int h=1;h<=n;h++)
{
fo<<q[h]<<' ';
}
fo<<endl;
}
}
else
{
int e=0,x,lie;
e=(~(s|l|r))&m;
while(e!=0)
{
x=0;
lie=0;
int w;
w=(e&-e);
e-=w;
x=w;
for(;x>0;)
{
lie++;
x>>=1;
}
q[i]=lie;
s=s&m;
l=l&m;
r=r&m;
qi((s+w),((l+w)<<1),((r+w)>>1),(i+1));
}
}
}