Submission #985131

#TimeUsernameProblemLanguageResultExecution timeMemory
985131SabyrAlCyberland (APIO23_cyberland)C++17
0 / 100
3061 ms6800 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pll = pair<ll, ll>; double djicstra(int n, int m, int k, int h, int s, vector<vector<pll> >& g) { vector<ll> dist(n, 1e15); dist[s] = 0; priority_queue<pll, vector<pll >, greater<pll > > q; q.push({0, s}); while(!q.empty()) { auto [d, v] = q.top(); q.pop(); if (d != dist[v]) continue; for (auto [to, c] : g[v]) { q.push({c + d, to}); dist[to] = min(c + d, dist[to]); } } return dist[h]; } double solve(int N, int M, int K, int H, vector<int> x, vector<int> y, vector<int> c, vector<int> arr) { vector<vector<pll > > g(N); for (int i = 0; i < M; i++) { g[x[i]].push_back({y[i], c[i]}); g[y[i]].push_back({x[i], c[i]}); } arr[0] = 0; double ans = 1e9; for (int i = 0; i < N; i++) { if (arr[i] == 0) { ans = min(djicstra(N, M, K, H, i, g), ans); } } return ans; }
#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...