比赛 20150711暑期B班 评测结果 AAAAAAAAAA
题目名称 跳棋的挑战 最终得分 100
用户昵称 Arrow 运行时间 1.657 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2015-07-11 11:01:10
显示代码纯文本
#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));
		}
	}
}