Submission #1310975

#TimeUsernameProblemLanguageResultExecution timeMemory
1310975ttparin_Jakarta Skyscrapers (APIO15_skyscraper)C++20
0 / 100
1 ms576 KiB
#include<bits/stdc++.h> using namespace std; #define int long long int b[30010]; int p[30010]; int dp[30010]; priority_queue<pair<int,int>> pq; vector<int> v[30010]; signed main(){ int n,m; cin>>m>>n; for(int i=1;i<=n;i++){ cin>>b[i]>>p[i]; v[b[i]].push_back(i); dp[i]=LLONG_MAX; } dp[1]=0; pq.push({0,1}); while(pq.empty()==0){ int w=-pq.top().first; int x=pq.top().second; if(x==2) break; if(w!=dp[x]){ pq.pop(); continue; } pq.pop(); for(int i=1;i<=m;i++){ if(i==b[x]) continue; if((i-b[x])%p[x]==0){ for(int j:v[i]) if(dp[j]>abs(b[j]-b[x])/p[x]+w){ dp[j]=abs(b[j]-b[x])/p[x]+w; pq.push({-dp[j],j}); } } } } if(dp[2]==LLONG_MAX){ cout<<"-1"; return 0; } cout<<dp[2]; 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...