제출 #887938

#제출 시각아이디문제언어결과실행 시간메모리
887938Perl32Jakarta Skyscrapers (APIO15_skyscraper)C++14
100 / 100
718 ms4072 KiB
//I wrote this code 4 u <3
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

#ifdef LOCAL
#include "algo/debug.h"
#else
#define debug(...) 42
#endif

const int INF = (int) 1e9 + 1e3;

signed main(int32_t argc, char *argv[]) {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    int n, m;
    cin >> m >> n;
    vector<pair<int, int>> a(n);
    vector<vector<int>> g(m);
    for (int i = 0; i < n; ++i) {
        cin >> a[i].first >> a[i].second;
        g[a[i].first].push_back(a[i].second);
    }
    vector<int> dist(m, INF);
    set<pair<int, int>> st;
    st.insert({0, a[0].first});
    dist[a[0].first] = 0;
    while (!st.empty()) {
        auto [t, v] = *st.begin();
        st.erase(st.begin());
        for (auto jmp : g[v]) {
            int d = 0, cur = v;
            while (cur < m) {
                if (dist[cur] > dist[v] + d) {
                    st.erase({dist[cur], cur});
                    dist[cur] = dist[v] + d;
                    st.insert({dist[cur], cur});
                }
                cur += jmp;
                d++;
            }
            cur = v;
            d = 0;
            while (cur > -1) {
                if (dist[cur] > dist[v] + d) {
                    st.erase({dist[cur], cur});
                    dist[cur] = dist[v] + d;
                    st.insert({dist[cur], cur});
                }
                cur -= jmp;
                d++;
            }
        }
    }
    cout << (dist[a[1].first] == INF ? -1 : dist[a[1].first]);
}

/*

 */

컴파일 시 표준 에러 (stderr) 메시지

skyscraper.cpp: In function 'int main(int32_t, char**)':
skyscraper.cpp:32:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   32 |         auto [t, v] = *st.begin();
      |              ^
#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...