ac23 wa11 求调
查看原帖
ac23 wa11 求调
795784
zxh923楼主2024/9/24 16:18
#include<bits/stdc++.h> 
#define int long long
#define N 55
#define pii pair<int,int>
#define x first
#define y second
#define mod 998244353
#define pct __builtin_popcount
using namespace std;
int T=1,n,m,k,a[N][N],sx,sy,f[N][N];
void dp(int sx,int sy,int tx,int ty){
	memset(f,0,sizeof f);
	if(tx>=sx){
		if(ty>=sy){
			for(int i=sx;i<=tx;i++){
				for(int j=sy;j<=ty;j++){
					if(i==sx&&j==sy)continue;
					f[i][j]=max(f[i][j-1],f[i-1][j])+a[i][j];
				}
			}
		}
		else{
			for(int i=sx;i<=tx;i++){
				for(int j=sy;j>=ty;j--){
					if(i==sx&&j==sy)continue;
					f[i][j]=max(f[i][j+1],f[i-1][j])+a[i][j];
				}
			}
		}
	}
	else{
		if(ty>=sy){
			for(int i=sx;i>=tx;i--){
				for(int j=sy;j<=ty;j++){
					if(i==sx&&j==sy)continue;
					f[i][j]=max(f[i][j-1],f[i+1][j])+a[i][j];
				}
			}
		}
		else{
			for(int i=sx;i>=tx;i--){
				for(int j=sy;j>=ty;j--){
					if(i==sx&&j==sy)continue;
					f[i][j]=max(f[i][j+1],f[i+1][j])+a[i][j];
				}
			}
		}
	}
}
void solve(int cs){
	cin>>n>>m>>k>>sx>>sy;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	int res=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			int dis=abs(sx-i)+abs(sy-j);
			if(k<dis)continue;
			dp(sx,sy,i,j);
			res=max(res,(k-dis)*a[i][j]+f[i][j]);
		}
	}
	cout<<res;
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
//	cin>>T;
	for(int cs=1;cs<=T;cs++){
		solve(cs);
	}
	return 0;
}
2024/9/24 16:18
加载中...