Rt,一直WA on 01_random_64
#include<bits/stdc++.h>
using namespace std;
unsigned long long H,W,X,P,Q,S[555][555],vis[555][555],val=0;
priority_queue<pair<unsigned long long,pair<int,int>>,vector<pair<unsigned long long,pair<int,int>>>,greater<pair<unsigned long long,pair<int,int>>>>q;
int main(){
cin>>H>>W>>X>>P>>Q;
for(int i=1;i<=H;i++)for(int j=1;j<=W;j++)cin>>S[i][j];
val=S[P][Q];
int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};vis[P][Q]=1;
for(int i=0;i<4;i++)if(S[P+dx[i]][Q+dy[i]])q.push(make_pair(S[P+dx[i]][Q+dy[i]],make_pair(P+dx[i],Q+dy[i])));
while(q.size()){
auto u=q.top();q.pop();
if(vis[u.second.first][u.second.second])continue;
vis[u.second.first][u.second.second]=1;
if(u.first*X>=val){cout<<val;return 0;}
val+=u.first;
for(int i=0;i<4;i++){
int x=u.second.first+dx[i],y=u.second.second+dy[i];
if(S[x][y]&&!vis[x][y])q.push(make_pair(S[x][y],make_pair(x,y)));
}
}cout<<val<<endl;
return 0;
}