恳请各位大佬帮助答疑解惑(为什么过不了啊啊啊啊):
#include <bits/stdc++.h>
using namespace std;
int n,m,k,a[1000][1000],ans;
struct shift{
int x,y,num;
}xy[10000];
bool cmp(shift a,shift b){
return a.num>b.num;
}
int main(){
cin>>n>>m>>k;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
if(a[i][j]){
xy[++ans].x=i;
xy[ans].y=j;
xy[ans].num=a[i][j];
}
}
}
sort(xy+1,xy+n+1,cmp);
int nx=0,ny=xy[1].y,tot=0;
for(int i=1;i<=ans;i++){
int mhd=abs(nx-xy[i].x)+abs(ny-xy[i].y);
if(k>=mhd+1+xy[i].x){
tot+=xy[i].num;
nx=xy[i].x;
ny=xy[i].y;
k-=(mhd+1);
}
else break;
}
cout<<tot;
return 0;
}