# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1001346 | spacewalker | Longest Trip (IOI23_longesttrip) | C++17 | 12 ms | 612 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 <bits/stdc++.h>
#include "longesttrip.h"
using namespace std;
optional<int> find_edge_between(vector<int> s, int v) {
if (!are_connected(s, {v})) return nullopt;
vector<int> current = s;
while (current.size() > 1) {
int hs = current.size() / 2;
vector<int> h1(begin(current), begin(current) + hs), h2(begin(current) + hs, end(current));
if (are_connected(h1, {v})) current = h1;
else current = h2;
}
return current[0];
}
optional<pair<int, int>> find_edge_between(vector<int> s1, vector<int> s2) {
if (!are_connected(s1, s2)) return nullopt;
vector<int> current = s1;
while (current.size() > 1) {
int hs = current.size() / 2;
vector<int> h1(begin(current), begin(current) + hs), h2(begin(current) + hs, end(current));
if (are_connected(h1, s2)) current = h1;
else current = h2;
}
return make_pair(current[0], find_edge_between(s2, current[0]).value());
}
std::vector<int> longest_trip(int N, int D) {
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... |