| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1358438 | orgiloogii | Cyberland (APIO23_cyberland) | C++20 | 459 ms | 24312 KiB |
#include "cyberland.h"
#include <bits/stdc++.h>
#include <vector>
#define ff first
#define ss second
using namespace std;
vector <vector <array <double, 2>>> adj;
vector <vector <double>> dp;
const double inf = 1e18;
double solve(int n, int m, int k, int h, vector<int> x, vector<int> y, vector<int> c, vector<int> arr) {
k = min(k, 70);
adj.assign(n + 1, {});
dp.assign(n + 1, vector <double> (k + 1, inf));
for (int i = 0;i < m;i++) {
adj[x[i]].push_back({y[i], c[i]});
adj[y[i]].push_back({x[i], c[i]});
}
vector <int> zer;
zer.push_back(0);
vector <bool> vis(n + 1, 0);
queue <int> q;
q.push(0);
vis[0] = true;
while (!q.empty()) {
auto u = q.front();
q.pop();
for (auto [v, _] : adj[u]) {
if (vis[v]) continue;
if (v == h) {
vis[h] = true;
continue;
}
vis[v] = true;
if (arr[v] == 0) {
zer.push_back(v);
}
q.push(v);
}
}
if (!vis[h]) return -1.0;
priority_queue <pair <double, pair <int, int>>, vector <pair <double, pair <int, int>>>, greater <pair <double, pair <int, int>>>> pq;
for (auto x : zer) {
for (int i = 0;i <= k;i++) {
dp[x][i] = 0;
}
pq.push({0.0, {x, 0}});
}
while (!pq.empty()) {
auto curr = pq.top().ff;
auto x = pq.top().ss.ff;
auto y = pq.top().ss.ss;
pq.pop();
if (dp[x][y] < curr || x == h) continue;
for (auto [v, w] : adj[x]) {
if (arr[v] == 0) continue;
if (dp[v][y] > curr + w) {
dp[v][y] = curr + w;
pq.push({curr + w, {v, y}});
}
if (arr[v] == 2 && y < k && dp[v][y + 1] > (curr + w) / 2) {
dp[v][y + 1] = (curr + w) / 2;
pq.push({(curr + w) / 2, {v, y + 1}});
}
}
}
// for (int i = 0;i <= k;i++) {
// cout << dp[h][i] << ' ';
// }
return -1.0;
}Compilation message (stderr)
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
