比赛 20111111 评测结果 AAAWWTTTTT
题目名称 最优分解方案 最终得分 30
用户昵称 Truth.Cirno 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-11 10:10:04
显示代码纯文本
#include <cstdio>
using namespace std;

int n;
bool used[1001]={false};
unsigned long long maxnum=0;

void tryit(int num,int rest,unsigned long long mul)
{
	int i;
	if (rest==0)
	{
		if (mul>maxnum)
			maxnum=mul;
		return;
	}
	for (i=num+1;i<=(rest>>1);i++)
	{
		if (!used[i])
		{
			used[i]=true;
			tryit(i,rest-i,mul*i);
			used[i]=false;
		}
	}
	if (!used[rest])
		tryit(rest,0,mul*rest);
}

int main(void)
{
	freopen("best.in","r",stdin);
	freopen("best.out","w",stdout);
	int i;
	scanf("%d\n",&n);
	for (i=1;i<=(n>>1);i++)
	{
		used[i]=true;
		tryit(i,n-i,i);
		used[i]=false;
	}
	printf("%d\n",maxnum);
	fclose(stdin);
	fclose(stdout);
	return(0);
}