Submission #916525

#TimeUsernameProblemLanguageResultExecution timeMemory
916525Darren0724Maze (JOI23_ho_t3)C++17
8 / 100
306 ms84108 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define all(x) x.begin(),x.end() #define abcorz ios_base::sync_with_stdio(false);cin.tie(0); const int INF=1e18; int32_t main(){ abcorz; int n,m,k;cin>>n>>m>>k; vector<vector<int>> v(n+2,vector<int>(m+2,1)); vector<vector<int>> dis(n+2,vector<int>(m+2,INF)); int s1,s2;cin>>s1>>s2; int t1,t2;cin>>t1>>t2; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ char c;cin>>c; v[i][j]=(c=='#'); } } vector<int> dx={-1,1,0,0},dy={0,0,-1,1}; priority_queue<pair<int,pair<int,int>>> pq; dis[s1][s2]=0; pq.push({0,{s1,s2}}); while(pq.size()){ auto[d,tmp]=pq.top(); pq.pop(); d=-d; auto [s1,s2]=tmp; if(d!=dis[s1][s2]){ continue; } for(int k=0;k<4;k++){ int t1=s1+dx[k]; int t2=s2+dy[k]; if(t1==0||t1==n+1||t2==0||t2==m+1){ continue; } if(dis[t1][t2]>dis[s1][s2]+v[s1][s2]+v[t1][t2]){ dis[t1][t2]=dis[s1][s2]+v[s1][s2]+v[t1][t2]; pq.push({-dis[t1][t2],{t1,t2}}); } } } cout<<dis[t1][t2]/2<<endl; return 0; }
#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...