rt,WA 7个点,求大佬棒条一下
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=510,dx[]={-1,1,0,0},dy[]={0,0,-1,1};
#define pii pair<int,int>
#define x first
#define y second
int h,w,p,q,ans,x,s[maxn][maxn];
bool vis[maxn][maxn];
void bfs(int px,int y){
queue<pii>q;
q.push(make_pair(px,y));
while(!q.empty()){
int fx=q.front().x,fy=q.front().y;
q.pop();
int flag=0;
vis[fx][fy]=true;
//cout<<fx<<" "<<fy<<"\n";
for(int i=0;i<4;i++){
int gx=fx+dx[i],gy=fy+dy[i];
if(gx>=1&&gx<=h&&gy>=1&&gy<=w){
double l=(double)1.0*s[gx][gy],r=(double)ans*1.0/x*1.0;
//cout<<l<<" "<<r<<"\n";
if(r>l&&!vis[gx][gy])
flag++,ans+=s[gx][gy],q.push(make_pair(gx,gy)),vis[gx][gy]=true;//,cout<<"x";
}
}
if(flag&&flag<4)
q.push(make_pair(fx,fy));
//cout<<"ok";
}
}
signed main(){
scanf("%lld%lld%lld%lld%lld",&h,&w,&x,&p,&q);
for(int i=1;i<=h;i++)
for(int j=1;j<=w;j++)
scanf("%lld",&s[i][j]);
ans=s[p][q];
bfs(p,q);
printf("%lld",ans);
return 0;
}
验证码MCDX祭