#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define ff first
#define ss second
#define all(s) s.begin(),s.end()
#define rall(s) s.rbegin(),s.rend()
int main(){
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
ll r,c,n;
cin>>r>>c>>n;
ll sr,sc;
cin>>sr>>sc;
ll gr,gc;
cin>>gr>>gc;
char s[r+5][c+5];
for(ll i=1;i<=r;i++){
for(ll j=1;j<=c;j++){
cin>>s[i][j];
}
}
ll dist[r+5][c+5];
for(ll i=1;i<=r;i++){
for(ll j=1;j<=c;j++){
dist[i][j]=1e9;
}
}
vector<ll>dx={0,0,-1,1};
vector<ll>dy={-1,1,0,0};
set<array<ll,3>>q;
q.insert({0,sr,sc});
dist[sr][sc]=0;
while(!q.empty()){
auto [d,x,y]=*q.begin();
q.erase(q.begin());
for(ll k=0;k<4;k++){
ll nx=x+dx[k],ny=y+dy[k];
if(nx<1||ny<1||nx>r||ny>c||dist[nx][ny]<1e9) continue;
if(dist[x][y]+(s[nx][ny]=='#'?1:0)<dist[nx][ny]){
dist[nx][ny]=dist[x][y]+(s[nx][ny]=='#'?1:0);
q.insert({dist[nx][ny],nx,ny});
}
}
}
cout<<dist[gr][gc];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |