# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
774882 | t6twotwo | Sky Walking (IOI19_walk) | C++17 | 4111 ms | 707312 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 "walk.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll min_distance(vector<int> X, vector<int> H, vector<int> L, vector<int> R, vector<int> Y, int s, int g) {
int N = X.size();
int M = Y.size();
map<pair<int, int>, int> mp;
vector<pair<int, int>> p;
for (int i = 0; i < N; i++) {
mp[{X[i], 0}] = i;
p.emplace_back(X[i], 0);
}
vector<vector<pair<int, int>>> adj(N);
for (int i = 0; i < M; i++) {
for (int j = L[i], k = -1; j <= R[i]; j++) {
if (H[j] >= Y[i]) {
int q;
if (!mp.count({X[j], Y[i]})) {
mp[{X[j], Y[i]}] = q = p.size();
p.emplace_back(X[j], Y[i]);
adj.push_back({});
} else {
q = mp[{X[j], Y[i]}];
}
if (k != -1) {
adj[k].emplace_back(q, X[j] - p[k].first);
adj[q].emplace_back(k, X[j] - p[k].first);
}
k = q;
# | 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... |