Submission #1154514

#TimeUsernameProblemLanguageResultExecution timeMemory
1154514kadirJakarta Skyscrapers (APIO15_skyscraper)C++20
57 / 100
1093 ms2116 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; vector<int> g[mxn]; int f[mxn],d[mxn]; signed main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n,m,h,k; cin>>n>>m; for(int i=1; i<=m; i++) { int x,y; cin>>x>>y; if(i==1) h=x; if(i==2) k=x; g[x].push_back(y); } for(int i=0; i<n; i++) f[i]=1e9; f[h]=0; for(int l=0; l<n; l++) { int p,mn=1e12; for(int i=0; i<n; i++) { if(d[i]==0&&mn>f[i]) { mn=f[i]; p=i; } } if(p==k) break; d[p]=1; for(int w:g[p]) { int t=0; for(int j=p-w; j>=0; j-=w) { f[j]=min(f[j],f[p]+t+1); t++; } t=0; for(int j=p+w; j<n; j+=w) { f[j]=min(f[j],f[p]+t+1); t++; } } } if(f[k]==1e9) cout<<"-1"; else cout<<f[k]; }
#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...