20,求助
查看原帖
20,求助
291980
星期八楼主2022/8/24 13:39
#include<bits/stdc++.h>
using namespace std;
int n,m;
int _map[55][55];
int ans_2;
int ans_1;
void send_1(int i,int j){
	if(_map[i][j+1]>_map[i+1][j]){
		j+=1;
		ans_1+=_map[i][j];
		_map[i][j]=0;
		send_1(i,j);
	}else if(_map[i][j+1]<_map[i+1][j]){
		i+=1;
		ans_1+=_map[i][j];
		_map[i][j]=0;
		send_1(i,j);
	}
	if(_map[i+1][j+1]>_map[i][j+1]&&_map[i+1][j+1]>_map[i+1][j]){
		i+=1;
		j+=1;
		ans_1+=_map[i][j];
		_map[i][j]=0;
		send_1(i,j);
	}
	if(i!=1&&j!=1&&_map[i][j]==0)
		return;
}
void send_2(int i,int j){
	if(_map[i][j-1]>_map[i-1][j]){
		j-=1;
		ans_2+=_map[i][j];
		_map[i][j]=0;
		send_2(i,j);
	}else if(_map[i][j-1]<_map[i-1][j]){
		i-=1;
		ans_2+=_map[i][j];
		_map[i][j]=0;
		send_2(i,j);
	}
	if(_map[i-1][j-1]>_map[i][j-1]&&_map[i-1][j-1]>_map[i-1][j]){
		i-=1;
		j-=1;
		ans_2+=_map[i][j];
		_map[i][j]=0;
		send_2(i,j);
	}
	if(i!=m&&j!=n&&_map[i][j]==0)
		return;
}
int main(){
	int ans;
	cin>>n>>m;
	for(int i=1;i<=m;i++)
		for(int j=1;j<=n;j++)
			cin>>_map[i][j];
	send_1(1,1);
	send_2(m,n);
	ans=ans_1+ans_2;
	cout<<ans<<endl;
	return 0;
}
2022/8/24 13:39
加载中...