Submission #1155248

#TimeUsernameProblemLanguageResultExecution timeMemory
1155248sodbayrJakarta Skyscrapers (APIO15_skyscraper)C++20
100 / 100
548 ms4624 KiB
#include<bits/stdc++.h> #define int long long #define ss second #define ff first #define pb push_back const int mxn=30005; using namespace std; signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n,m; cin>>n>>m; int b[m],p[m]; vector<int>a[n]; for(int i=0;i<m;i++){ cin>>b[i]>>p[i]; a[b[i]].pb(p[i]); } set<pair<int,int>>s; s.insert({0,b[0]}); vector<int>d(n,1e9); d[b[0]]=0; while(!s.empty()) { pair<int,int> q=*s.begin(); s.erase(s.begin()); int C=q.ff,p=q.ss; for(int i:a[p]) { int c=p,t=0; while(c>=0){ if(C+t<d[c]) { if(d[c]<1e9) s.erase({d[c],c}); d[c]=C+t; s.insert({d[c],c}); } c-=i; t++; } c=p; t=0; while(c<n) { if(C+t<d[c]) { if(d[c]<1e9) s.erase({d[c],c}); d[c]=C+t; s.insert({d[c],c}); } c+=i; t++; } } } if(d[b[1]]==1e9){ cout<<"-1"; } else { 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...