方格取数()
查看原帖
方格取数()
643112
blm_zhangwenxuan楼主2023/10/17 20:02

逆天错误求大佬帮忙查一下

#include <bits/stdc++.h>
using namespace std;
struct no {
	int a,b;
} a[131][130];

int main() {
	int n,m;
	cin>>n>>m;
	for(int i=0; i<n; i++){
		for(int j=0; j<m; j++) {
			cin>>a[i][j].a;
			a[i][j].b=1;
		}}
	int sum=a[0][0].a;
	for(int i=0,j=0; i<n&&j<m; ) {
		if(a[i][j+1].b==0) {
			if(a[i+1][j].b==0&&a[i-1][j].b!=0) {
				sum+=a[i-1][j].a;
			} else if(a[i+1][j].b!=0&&a[i-1][j].b==0) {
				sum+=a[i+1][j].a;
			} else(a[i+1][j].b!=0&&a[i-1][j].b!=0)

			{
				if(a[i+1][j].a>a[i-1][j].a) {
					i++;
					sum+=a[i+1][j].a;
				} else if(a[i+1][j].a<=a[i-1][j].a) {
					i--;
					sum+=a[i-1][j].a;
				}

			}



		} else   if(a[i+1][j].b==0) {
			if(a[i][j+1].b==0&&a[i-1][j].b!=0) {
				sum+=a[i-1][j].a;
			} else if(a[i][j+1].b!=0&&a[i-1][j].b==0) {
				sum+=a[i][j+1].a;
			} else(a[i][j+1].b!=0&&a[i-1][j].b!=0) {
				if(a[i][j+1].a>a[i-1][j].a) {
					j++;
					sum+=a[i][j+1].a;
				} else if(a[i][j+1].a<=a[i-1][j].a) {
					i--;
					sum+=a[i-1][j].a;
				}
			}
		} else   if(a[i-1][j].b==0) {
			if(a[i+1][j].b==0&&a[i][j+1].b!=0) {
				sum+=a[i][j+1].a;
			} else if(a[i+1][j].b!=0&&a[i][j+1].b==0) {
				sum+=a[i+1][j].a;
			} else(a[i+1][j].b!=0&&a[i][j+1].b!=0) {
				if(a[i+1][j].a>a[i][j+1].a) {
					i++;
					sum+=a[i+1][j].a;
				} else if(a[i+1][j].a<=a[i][j+1].a) {
					j++;
					sum+=a[i][j+1].a;
				}
			}
		}
	}
	cout<<sum;
}

rt

2023/10/17 20:02
加载中...