记录编号 441172 评测结果 AAAAAAAAAA
题目名称 [NOIP 2010]乌龟棋 最终得分 100
用户昵称 GravatarEmine 是否通过 通过
代码语言 C++ 运行时间 0.087 s
提交时间 2017-08-24 16:57:32 内存使用 15.96 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;

const int maxn=355;
const int maxm=125;
int n,m;
int a[maxn];
int cc,c[maxm];
int f[45][45][45][45];

inline void init(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=m;i++) cin>>cc,c[cc]++;
}	

int main(){
	freopen("tortoise.in","r",stdin);
	freopen("tortoise.out","w",stdout);
	init();
	for(int i=0;i<=c[1];i++)
		for(int j=0;j<=c[2];j++)
			for(int k=0;k<=c[3];k++)
				for(int l=0;l<=c[4];l++){
					if(i) f[i][j][k][l]=max(f[i-1][j][k][l],f[i][j][k][l]);
					if(j) f[i][j][k][l]=max(f[i][j-1][k][l],f[i][j][k][l]);
					if(k) f[i][j][k][l]=max(f[i][j][k-1][l],f[i][j][k][l]);
					if(l) f[i][j][k][l]=max(f[i][j][k][l-1],f[i][j][k][l]);
					f[i][j][k][l]+=a[i+j*2+k*3+l*4+1];
				}
	printf("%d",f[c[1]][c[2]][c[3]][c[4]]);
	return 0;
}