评点3错了,那位大佬帮忙看看。
查看原帖
评点3错了,那位大佬帮忙看看。
558079
hsgzdbq楼主2023/9/1 09:03
#include<iostream>
using namespace std;
int n, ans = 0;
int num[10][10],flg[10][10];

int road(int a, int b) {
	if(a == 0 || b == 0) return 0;
	else{
		if(road(a-1,b) > road(a,b-1)){
			ans = road(a - 1, b) + num[a][b];
			if(flg[a][b]==1)	
				flg[a-1][b]=1;
			flg[a][b-1]=0;
		}
		else{
			ans = road(a,b-1) + num[a][b];
			if(flg[a][b]==1)
				flg[a][b-1]=1;
			flg[a-1][b]=0;
		}	
			
	}
	return ans;
}
int main() {
	cin >> n;
	flg[n][n]=1;
	int x, y, Num;
	int flag = 0;
	while (flag == 0) {
		cin >> x >> y >> Num;
		if (x == 0 && y == 0 && Num == 0) flag = 1;
		else {
			num[x][y] = Num;
		}
	}
	int sum=0;
	road(n,n);
	sum+=road(n,n);
	num[n][n]=0;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			if(flg[i][j]==1)
				num[i][j]=0;
	sum+=road(n,n);
	cout<<sum;
	return 0;
}
2023/9/1 09:03
加载中...