我拿错了?(尽快回复)
查看原帖
我拿错了?(尽快回复)
559847
Ferm_Tawn楼主2022/1/20 13:01
#include<bits/stdc++.h>
using namespace std;
int s[20][20];
int ans = -1e9;
int n;
void dfs(int x , int y , int x2 , int y2 , int sume){
	if(x == n && y == n){
		ans = max(ans , sume);
		return ;
	}
	if(x < n){
		if(x2 < n) return dfs(x + 1 , y , x2 + 1 , y2 , sume + s[x + 1][y] + (x + 1 != x2 + 1 || y != y2) * s[x2 + 1][y2]);
		if(y2 < n) return dfs(x + 1 , y , x2 , y2 + 1 , sume + s[x + 1][y] + (x + 1 != x2 || y != y2 + 1) * s[x2][y2 + 1]);
	}
	if(y < n){
		if(x2 < n) return dfs(x , y + 1 , x2 + 1 , y2 , sume + s[x][y + 1] + (x != x2 + 1 || y + 1 != y2) * s[x2 + 1][y2]);
		if(y2 < n) return dfs(x , y + 1 , x2 , y2 + 1 , sume + s[x][y + 1] + (x != x2 || y + 1 != y2 + 1) * s[x2][y2 + 1]);
	}
}
int main(){
	cin >> n;
	while(true){
		int a , b , c;
		cin >> a >> b >> c;
		if(a == 0 && b == 0 && c == 0){
			break;
		}
		s[a][b] = c;
	}
	dfs(1 , 1 , 1 , 1 , s[1][1]);
	cout << ans;
	return 0;
} 
2022/1/20 13:01
加载中...