?

程序员王斌爱玩原神  •  3个月前


include<bits/stdc++.h>

using namespace std; int n,m,k,i,j,ans,a[1001][1001],b[1001],nx,ny,x[1001],y[1001]; int main(){

cin>>n>>m>>k;
for(i=1;i<=n;i++){
	for(j=1;j<=m;j++){
		cin>>a[i][j];
		b[(i-1)*m+j]=a[i][j];
		x[(i-1)*m+j]=i;
		y[(i-1)*m+j]=j;
	}
}
if(n==1&&m==1){
	cout<<b[1];
	return 0;
}
for(i=1;i<=n*m;i++){
	for(j=i+1;j<=n*m;j++){
		if(b[i]<b[j]){
			swap(b[i],b[j]);
			swap(x[i],x[j]);
			swap(y[i],y[j]);
		}
	}
}
nx=0,ny=y[1];
for(i=1;i<=n*m;i++){
	if(k>=x[i]+abs(nx-x[i])+abs(ny-y[i])+1){
		k-=(abs(nx-x[i])+abs(ny-y[i])+1);
		nx=x[i];
		ny=y[i];
		ans+=b[i];
	}else{
		cout<<ans;
		return 0;
	}
}

}


评论:

请先登录,才能进行评论