90分,第五个测试点WA
查看原帖
90分,第五个测试点WA
836593
qiiie_yyy楼主2023/3/28 17:48

学半年c++,基础不是很好,有些算法可能看不太懂,希望照顾一下下

#include<bits/stdc++.h>
#include<cmath>
using namespace std;
int main(){
	int m,n,k,a[100][100],gs,cs,ks,si,sj;//个数,参数,棵数,i坐标,j坐标 
	cs=ks=gs=si=sj=0;
	cin>>m>>n>>k;
	
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
			if(a[i][j]>0) ks++;
		}
	}
	for(int h=1;h<=ks;h++){
		for(int i=1;i<=m;i++){
		    for(int j=1;j<=n;j++){
			    cs=max(cs,a[i][j]);
		    }
	    }
	    for(int i=1;i<=m;i++){
		    for(int j=1;j<=n;j++){
			    if(cs==a[i][j]&&h==1&&cs!=0){
			    	sj=j;
			    	k=k-abs(si-i)-1;
			    	si=i;
			    	gs=a[i][j];
			    	a[i][j]=0;
			    	cs=0;
			    }
			    if(cs==a[i][j]&&cs!=0&&h!=1&&(abs(si-i)+abs(sj-j)+i+1<=k)){
			    	k=k-abs(si-i)-abs(sj-j)-1;
			    	si=i;
			    	sj=j;
			    	gs=gs+a[i][j];
			    	a[i][j]=0;
			    	cs=0;
			    }
			    
		    }
	    }
	}
	cout<<gs;
} 
2023/3/28 17:48
加载中...