제출 #1360366

#제출 시각아이디문제언어결과실행 시간메모리
1360366waygonzJakarta Skyscrapers (APIO15_skyscraper)C++20
57 / 100
1096 ms3180 KiB
#include <bits/stdc++.h>
#define pii pair<int, int>

using namespace std;

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
    int n, m;
    cin >> n >> m;
    vector<pii> a(m);
    vector<int> adj[n];
    for (auto &[x, y] : a) cin >> x >> y, adj[x].emplace_back(y);
    priority_queue<pii> pq;
    vector<int> dis(n, INT_MAX);
    pq.emplace(0, a[0].first);
    dis[a[0].first] = 0;
    while (!pq.empty()) {
        auto [w, u] = pq.top();
        pq.pop();
        if (dis[u] < -w) continue;
        for (auto d : adj[u]) {
            for (int i = u + d; i < n; i += d) {
                if (dis[i] <= -w + (i - u) / d) continue;
                dis[i] = -w + (i - u) / d;
                pq.emplace(-dis[i], i);
            }
            for (int i = u - d; i >= 0; i -= d) {
                if (dis[i] <= -w + (u - i) / d) continue;
                dis[i] = -w + (u - i) / d;
                pq.emplace(-dis[i], i);
            }
        }
    }
    if (dis[a[1].first] == INT_MAX) cout << -1;
    else cout << dis[a[1].first];
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…