比赛 防止浮躁的小练习v0.5 评测结果 AAAAAAAAAA
题目名称 传纸条 最终得分 100
用户昵称 521 运行时间 0.144 s
代码语言 C++ 内存使用 13.05 MiB
提交时间 2016-10-15 15:41:46
显示代码纯文本
#include<cstdio>
using namespace std;
#define is(a) ((a)>='0'&&(a)<='9')
char ch;bool read_flag;
inline void read(int& x)
{
	read_flag=false;
	while(ch=getchar(),!is(ch))if(ch=='-')read_flag=1;
	x=ch^'0';
	while(ch=getchar(),is(ch)) x=x*10+(ch^'0');
	if(read_flag) x=-x;
}
const int Size=51;
inline int _max(int x,int y){return x>y?x:y;}
int f[Size][Size][Size][Size],map[Size][Size];
int _521()
{
	freopen("message.in","r",stdin);
	freopen("message.out","w",stdout);
	int i,j,k,l,n,m;
	read(n),read(m);
	for(i=1;i<=n;i++) for(j=1;j<=m;j++) read(map[i][j]);
	for(i=1;i<=n;i++){
		for(j=1;j<=m;j++){
			for(k=1;k<=n;k++){
				for(l=1;l<=m;l++){
					int temp;
					temp=_max(f[i-1][j][k-1][l],f[i-1][j][k][l-1]);
					temp=_max(f[i][j-1][k-1][l],temp);
					temp=_max(f[i][j-1][k][l-1],temp);
					temp+=map[i][j]+map[k][l];
					if(i==k&&j==l) temp-=map[i][j];
					f[i][j][k][l]=temp;
				}
			}
		}
	}
	printf("%d\n",f[n][m][n][m]);
	return 0;
}
int _520=_521();
int main(){;}