Submission #1150605

#TimeUsernameProblemLanguageResultExecution timeMemory
1150605danglayloi2Jakarta Skyscrapers (APIO15_skyscraper)C++20
100 / 100
102 ms7560 KiB
#include <bits/stdc++.h> #define fi first #define se second #define inf 0x3f3f3f3f using namespace std; using ll = long long; const int nx=3e4+5; const int sq=175; int n, m, d[nx], b[nx], p[nx], ans=inf; vector<int> city[nx]; bool vis[nx][sq]; struct dak { int i, w, p; }; queue<dak> f; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>m; for(int i = 0; i < m; i++) { cin>>b[i]>>p[i]; city[b[i]].emplace_back(i); } memset(d, -1, sizeof(d)); f.push({b[0], 0, 0}); while(f.size()) { dak v=f.front(); f.pop(); int u=v.i, w=v.w, pw=v.p; if(u<0 || u>=n) continue; if(abs(pw)<sq) { if(vis[u][abs(pw)]) continue; vis[u][abs(pw)]=1; } if(d[u]==-1) { d[u]=w; for(int i:city[u]) { f.push({u-p[i], w+1, -p[i]}); f.push({u+p[i], w+1, p[i]}); } } f.push({u+pw, w+1, pw}); } cout<<d[b[1]]; }
#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...