Submission #1228066

#TimeUsernameProblemLanguageResultExecution timeMemory
1228066goduadzesabaCyberland (APIO23_cyberland)C++20
15 / 100
23 ms7372 KiB
#include "cyberland.h" #include <bits/stdc++.h> using namespace std; const long long inf = 1e18; double solve(int N, int M, int K, int H, vector<int> x, vector<int> y, vector<int> c, vector<int> arr) { vector<pair<int, long long>> v[N]; for (int i = 0; i < M; i++) { v[x[i]].emplace_back(y[i], c[i]); v[y[i]].emplace_back(x[i], c[i]); } arr[0] = 0; // force start from node 0 vector<long long> d(N, inf); priority_queue<pair<long long, int>, vector<pair<long long, int>>, greater<>> pq; for (int i = 0; i < N; i++) { if (arr[i] == 0) { d[i] = 0; pq.emplace(0, i); } } while (!pq.empty()) { auto [dist, u] = pq.top(); pq.pop(); if (dist > d[u]) continue; for (auto [to, cost] : v[u]) { if (d[to] > d[u] + cost) { d[to] = d[u] + cost; pq.emplace(d[to], to); } } } if (d[H] == inf) return -1; return d[H]; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...