Submission #1228062

#TimeUsernameProblemLanguageResultExecution timeMemory
1228062goduadzesabaCyberland (APIO23_cyberland)C++20
15 / 100
32 ms8004 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]].push_back({y[i], c[i]}); v[y[i]].push_back({x[i], c[i]}); } arr[0] = 0; // start from node 0, which becomes "unprotected" set<pair<long long, int>> s; long long d[N]; for (int i = 0; i < N; i++) { if (arr[i] == 0) { d[i] = 0; s.insert({0, i}); } else { d[i] = inf; } } while (!s.empty()) { int x = s.begin()->second; s.erase(s.begin()); for (auto i : v[x]) { if (d[i.first] > d[x] + i.second) { s.erase({d[i.first], i.first}); d[i.first] = d[x] + i.second; s.insert({d[i.first], i.first}); } } } 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...