90分求调
查看原帖
90分求调
1388003
CodeManiacs楼主2025/1/19 12:54
#include<bits/stdc++.h>
using namespace std;
int n,m;
long long a[205][205],ans;
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
	    for(int x=1;x<=m;x++)
		cin>>a[i][x];					
	}
	ans=a[1][1];
    for(int i=2;i<=n;i++)
	{
		for(int x=1;x<=m;x++)
		{
		if(x==1)
		a[i][x]=max(a[i-1][x],a[i-1][x+1])+a[i][x];	
		if(m==x)
		a[i][x]=max(a[i-1][x],a[i-1][x-1])+a[i][x];	
		if(x!=1&&x!=m)
		a[i][x]=max(max(a[i-1][x],a[i-1][x+1]),a[i-1][x-1])+a[i][x];	
		}
		
	}
    ans=max(max(a[n][m/2+2],a[n][m/2+1]),a[n][m/2]);
	cout<<ans;
	return 0;
}
2025/1/19 12:54
加载中...