Submission #393607

#TimeUsernameProblemLanguageResultExecution timeMemory
393607loctildoreJakarta Skyscrapers (APIO15_skyscraper)C++14
36 / 100
1092 ms9236 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define f first #define s second #define x first #define y second #define elif else if #define endl '\n' #define all(x) begin(x), end(x) template <typename T> ostream& operator << (ostream& os, const vector<T>& a) { os << '['; bool E = false; for(const T& x : a) { if(E) os << ' '; os << x; E = true; } return os << ']'; } int n,m; int b[30069],p[30069],done[30069]; priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> pq; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cin>>n>>m; for (int i = 0; i < m; i++) { cin>>b[i]>>p[i]; } pq.push({0,0}); while (pq.size()) { auto temp=pq.top(); pq.pop(); if (done[temp.s]) { continue; } done[temp.s]=true; if (temp.s==1) { cout<<temp.f<<endl; return 0; } for (int i = 0; i < m; i++) { if (done[i]) { continue; } if (abs(b[temp.s]-b[i])%p[temp.s]==0) { pq.push({temp.f+abs(b[temp.s]-b[i])/p[temp.s],i}); } } } cout<<-1<<endl; 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...