比赛 20111111 评测结果 AAAAAEEEEE
题目名称 最优分解方案 最终得分 50
用户昵称 Makazeu 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-11 10:58:09
显示代码纯文本
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int N;
unsigned long long M=0;

class QUEUE
{
public:
	unsigned long long Sum;
	int pos;
	int He;
}Q[6000000];

void bfs()
{
	int big=N;
	int sma=0;
	
	for (int i=0;i<=N-1;i++)
	{
		Q[i].He=i+1;
		Q[i].Sum=i+1;
		Q[i].pos=i+1;
	}
	
	int Th,Tp;
	unsigned long long Ts;
	while(sma<big)
	{
		Th=Q[sma].He;
		Ts=Q[sma].Sum;
		Tp=Q[sma].pos;
		
		if(Ts>M)
			M=Ts;
		
		for (int i=Tp+1;i<=N-Th;i++)
		{
			Q[big].He=Th+i;
			Q[big].Sum=Ts*i;
			Q[big].pos=i;
			big++;
		}
		
		sma++;
	}
}

int main()
{
	freopen("best.in","r",stdin);
	freopen("best.out","w",stdout);
	scanf("%d\n",&N);
	bfs();
	cout<<M<<endl;
	return 0;
}