Submission #1220339

#TimeUsernameProblemLanguageResultExecution timeMemory
1220339KindaGoodGamesText editor (CEOI24_editor)C++20
0 / 100
4107 ms339340 KiB
#include<bits/stdc++.h> using namespace std; #define pii pair<int,int> #define tiii tuple<int,int,int> int main(){ int n; int sr, sc; int er, ec; cin >> n; cin >> sr >> sc; cin >> er >> ec; sr--;sc--; er--;ec--; vector<int> arr(n); for(int i = 0; i < n; i++){ cin >> arr[i]; } priority_queue<tiii, vector<tiii>, greater<tiii>> pq; map<pii, int> dist; pq.push({0,sr,sc}); while(pq.size()){ int d,r,c; tie(d,r,c) = pq.top(); pq.pop(); if(dist.count({r,c})) continue; dist[{r,c}] = d; if(r == er && ec == c) break; // horizontal if(c > 0) pq.push({d+1,r,c-1}); else pq.push({d+1,r-1,arr[r-1]}); if(c < arr[r]) pq.push({d+1,r,c+1}); else if(r+1 < n) pq.push({d+1,r+1,0}); // vertical if(r > 0) pq.push({d+1,r-1,min(c,arr[r-1])}); if(r < n) pq.push({d+1,r+1,min(c,arr[r+1])}); } cout << dist[{er,ec}] << endl; }
#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...