제출 #393611

#제출 시각아이디문제언어결과실행 시간메모리
393611loctildoreJakarta Skyscrapers (APIO15_skyscraper)C++14
36 / 100
1083 ms9056 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 (b[temp.s]==b[i]||(abs(b[temp.s]-b[i])>=p[temp.s]&&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...