求助!
查看原帖
求助!
952814
lzh009楼主2023/5/14 16:36
#include<bits/stdc++.h>
int a[10001][10001],n,m,mm1,mm2,ll1,ll2,l,ans,q0,xxc;
int big(int a,int b,int c){
	if(a>b>c)return a;
	if(a>c>b)return a;
	if(b>c>a)return b;
	if(b>a>c)return b;
	if(c>a>b)return c;
	if(c>b>a)return c;
}
using namespace std;
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
			if(a[i][j]==0&&l==0){
				mm1=i;mm2=j;l=1;
			}
			else if(a[i][j]==0&&l==1){
				ll1=i;ll2=j;
			}
		}
	}
	while(xxc==0){
		for(int i=1;i<=mm1;i++){
		  for(int j=1;j<=mm2;j++){
		  	ans+=big(a[i-1][j-1],a[i-1][j],a[i][j-1]);
		  	if(big(a[i-1][j-1],a[i-1][j],a[i][j-1])==a[i-1][j-1]) a[i-1][j-1]=0;
		  	if(big(a[i-1][j-1],a[i-1][j],a[i][j-1])==a[i-1][j]) a[i-1][j]=0;
		  	if(big(a[i-1][j-1],a[i-1][j],a[i][j-1])==a[i][j-1]) a[i][i-1]=0;
		  	if(ans=0) xxc=1;
		  }
	    }
	}
	while(xxc==0){
		for(int i=ll1;i>=1;i--){
		  for(int j=ll2;j>=1;j--){
		  	ans+=big(a[i+1][j+1],a[i+1][j],a[i][j+1]);
		  	if(big(a[i+1][j+1],a[i+1][j],a[i][j+1])==a[i+1][j+1]) a[i+1][j+1]=0;
		  	if(big(a[i+1][j+1],a[i+1][j],a[i][j+1])==a[i+1][j]) a[i+1][j]=0;
		  	if(big(a[i+1][j+1],a[i+1][j],a[i][j+1])==a[i][j+1]) a[i][i+1]=0;
		  	if(ans=0) xxc=1;
		  }
	    }
	}
	cout<<ans;
	return 0;
}
2023/5/14 16:36
加载中...