# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
521992 | eecs | Escape Route (JOI21_escape_route) | C++17 | 4536 ms | 144592 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "escape_route.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll INF = 1e18;
void chk(ll &x, ll y) {
if (x > y) x = y;
}
vector<ll> calculate_necessary_time(int n, int m, ll S, int q,
vector<int> A, vector<int> B, vector<ll> L, vector<ll> C,
vector<int> U, vector<int> V, vector<ll> T) {
vector<vector<ll>> W(n, vector<ll>(n, -1)), lim = W;
for (int i = 0; i < m; i++) {
W[A[i]][B[i]] = W[B[i]][A[i]] = L[i];
lim[A[i]][B[i]] = lim[B[i]][A[i]] = C[i] - L[i];
}
auto dijkstra = [&](vector<ll> &d) {
vector<bool> vis(n);
while (1) {
int u = -1;
for (int i = 0; i < n; i++) {
if (!vis[i] && d[i] < INF && (!~u || d[u] > d[i])) u = i;
}
if (!~u) break;
vis[u] = 1;
for (int i = 0; i < n; i++) if (~W[u][i]) {
if (d[u] % S <= lim[u][i]) chk(d[i], d[u] + W[u][i]);
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |