# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
516103 | tzuyuna | Computer Network (BOI14_network) | C++17 | 99 ms | 7324 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.
#undef _GLIBCXX_DEBUG
#include <bits/stdc++.h>
using namespace std;
#define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define pb push_back
#define fi first
#define si second
#define ar array
typedef pair<int,int> pi;
typedef tuple<int,int,int> ti;
void debug_out() { cerr << endl; }
template <typename Head, typename... Tail>
void debug_out(Head H, Tail... T) {cerr << " " << to_string(H);debug_out(T...);}
#define debug(...) cerr << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__)
#include "network.h"
pi dist[1010];
void findRoute (int N, int a, int b) {
for (int i = 1; i <= N; ++i) {
if (i != a) dist[i] = pi(ping(a, i), i);
else dist[i] = pi(-1, i);
}
sort(dist + 1, dist + 1 + N);
int idx = 0;
for (int i = 1; i <= N; ++i) {
if (dist[i].si == b) {
idx = i;
break;
}
}
int cur = b;
vector<int> ans;
ans.pb(cur);
for (int i = idx - 1; i >= 1; --i) {
// dist(a, i) + dist(i, cur) + 1 == dist(a, cur)
if (dist[i].fi + ping(i, cur) + 1 == dist[cur].fi) {
ans.pb(i);
cur = dist[i].si;
}
}
ans.pop_back();
reverse(ans.begin(), ans.end());
for (auto i: ans) {
travelTo(dist[i].si);
}
}
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... |