40分,不知道问题在哪
查看原帖
40分,不知道问题在哪
890623
Mars_Xiemengyang楼主2025/1/21 21:25
#include<bits/stdc++.h>
using namespace std;
const int MAXN=25;
int a[MAXN][MAXN];
int m,n,k;
pair<int,pair<int,int> > find(){
	int maxn=-1;
	pair<int,int> pos={-1,-1};
	for(int i=1;i<=m;i++){
		for(int j=0;j<=n;j++){
			if(a[i][j]>maxn){
				maxn=a[i][j];
				pos={i,j};
			}
		}
	}
	return make_pair(maxn,pos);
}
int main(){
	cin>>m>>n>>k;
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
		}
	}
	int sum=0;
	int x0=0,y0=0;
	while(k>0){
		pair<int,pair<int,int> > result=find();
		int maxn=result.first;
		int maxi=result.second.first;
		int maxj=result.second.second;
		if(maxn<=0) break;
		int time_to_reach=abs(x0-maxi)+abs(y0-maxj)+1;
		if(time_to_reach>k) break;
		k-=time_to_reach;
		sum+=maxn;
		a[maxi][maxj]=0;
		x0=maxi;
		y0=maxj;
	}
	cout<<sum;
	return 0;
}

不知道为什么,这个代码40分,又感觉没什么问题,有大神能来看看问题吗
提交记录

2025/1/21 21:25
加载中...