Submission #1156135

#TimeUsernameProblemLanguageResultExecution timeMemory
1156135irmuunMaze (JOI23_ho_t3)C++20
8 / 100
379 ms80140 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...