제출 #977641

#제출 시각아이디문제언어결과실행 시간메모리
977641nninJakarta Skyscrapers (APIO15_skyscraper)C++17
0 / 100
1 ms1116 KiB
#include<bits/stdc++.h> using namespace std; #define pii pair<int,int> int N, M, B[30005], P[30005]; vector<pii> adj[30005]; int mindis[30005]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin>>N>>M; for(int i=0;i<M;i++) { cin>>B[i]>>P[i]; for(int j=1;B[i]-(j*P[i])>=0;j++) { adj[B[i]].push_back({B[i]-(j*P[i]), j}); } for(int j=1;B[i]+(j*P[i])<N;j++) { adj[B[i]].push_back({B[i]+(j*P[i]), j}); } } for(int i=0;i<N;i++) mindis[i] = 2e9; priority_queue<pii, vector<pii>, greater<pii>> pq; pq.push({0, B[0]}); mindis[B[0]] = 0; while(!pq.empty()) { auto [dis, u] = pq.top(); pq.pop(); if(mindis[u]!=dis) continue; for(auto [v, w]:adj[u]) { if(mindis[v]>dis+w) { mindis[v] = dis+w; pq.push({mindis[v], v}); } } } if(mindis[1]==2e9) cout<<-1; else cout<<mindis[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...