Submission #114142

#TimeUsernameProblemLanguageResultExecution timeMemory
114142fedoseevtimofeyJakarta Skyscrapers (APIO15_skyscraper)C++14
36 / 100
1069 ms33400 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; const int N = 3e4 + 7; vector <pair <int, int>> g[N]; int d[N]; const int Inf = 1e9; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.setf(ios::fixed); cout.precision(20); #ifdef LOCAL freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif int n, m; cin >> n >> m; vector <int> b(m), p(m); for (int i = 0; i < m; ++i) { cin >> b[i] >> p[i]; } for (int i = 0; i < m; ++i) { for (int j = 0; j < m; ++j) { if (i == j) continue; if ((b[i] - b[j]) % p[i] == 0) { g[i].emplace_back(j, abs(b[i] - b[j]) / p[i]); } } } for (int i = 0; i < m; ++i) d[i] = Inf; d[0] = 0; set <pair <int, int>> q; q.insert({0, 0}); while (!q.empty()) { auto p = *q.begin(); q.erase(q.begin()); int u = p.second; for (auto &[v, w] : g[u]) { if (d[v] > d[u] + w) { q.erase({d[v], v}); d[v] = d[u] + w; q.insert({d[v], v}); } } } cout << (d[1] == Inf ? -1 : d[1]) << '\n'; }

Compilation message (stderr)

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:42:20: warning: decomposition declaration only available with -std=c++1z or -std=gnu++1z
         for (auto &[v, w] : g[u]) {
                    ^
#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...