比赛 20111107 评测结果 C
题目名称 删数 最终得分 0
用户昵称 日光。 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-07 11:21:39
显示代码纯文本
#include<fstream>
using namespace std;
int ans,i,j,m,N,k,top,last;
int a[101];
bool b[101];
void search(int temp,int flg)
{
	int r;
	if(ans<temp)
	{
		ans=temp;
	}
	else
	{
		for(r=1;r<=2;r++)
		{
			if(r==1)
			{
				if(b[r-1]!=true&&flg!=0)
				{
					for(r=top;r<top+i;r++)
					{
						if(i==1)
						{
							b[r-1]=true;
							top=top+i;
							search(temp+a[r],flg-i);
							top=top-i;
							b[r-1]=false;
						}
						else
						{
							b[r-1]=true;
							top=top+i;
							search(temp+(abs(a[top]-a[top+i-1])*i),flg-i);
							top=top-i;
							b[r-1]=false;
						}
					}
				}
			}
			else
			{
				if(b[r]!=true&&flg!=0)
				{
					for(r=last;r<last-i;r--)
					{
						if(i==1)
						{
							b[r]=true;
							last=last-i;
							search(temp+a[r],flg-i);
							last=last+i;
							b[r]=false;
						}
						else
						{
							b[r]=true;
							last=last-i;
							search(temp+(abs(a[last]-a[last+i-1])*i),flg-i);
							last=last+i;
							b[r]=false;
						}
					}
				}
			}
		}
	}
}
int main()
{
	ifstream fin("remove.in");
	ofstream fout("remove.out");
	fin>>N;
	for(i=0;i<N;i++)
	{
		fin>>a[i];
	}
	for(i=0;i<N;i++)
	{
		b[i]=false;
	}
	top=1;
	last=N;
	search(0,N);
	fout<<ans;
	return 0;
}