제출 #1351434

#제출 시각아이디문제언어결과실행 시간메모리
1351434sameerJakarta Skyscrapers (APIO15_skyscraper)C++20
0 / 100
0 ms348 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long int;
int i, va, j, k, t, n, m, mi[30001]; pair<int, int> p[30001]; vector<int> v[30001]; bool c[30001];

void run(){
 cin >> n >> m;
 for( i = 1; i <= m; i++) cin >> p[i].first >> p[i].second, v[p[i].first].push_back(p[i].second);
 for( i = 0; i < n; i++) mi[i] = 1e9, c[i] = 0;
 mi[p[1].first] = 0;
 priority_queue<pair<int, int>> pp;
 pp.push({-mi[p[1].first], p[1].first});
 while(!pp.empty()){
 t = pp.top().second; pp.pop();
 if(c[t]) continue;
 c[t] = 1;
 for(int x: v[t]){
 for( i = t % x; i < n; i+=x) if(mi[i] > mi[t]+abs(t-i)/x) mi[i] = mi[t]+abs(t-i)/x, pp.push({-mi[i], i});
 }

 }
 if(mi[1] == 1e9) cout << -1;
 else cout << mi[p[2].first];
}

int main(){
 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
 // int tt; cin >> tt; while(tt--)
 run();
}
#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...