# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
301048 | zecookiez | Computer Network (BOI14_network) | C++17 | 130 ms | 11896 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 <network.h>
using namespace std;
template<class C>constexpr int len(const C&c){return int(c.size());}
const int MAXN = 1001;
vector<int> dist[MAXN];
int memo[MAXN][MAXN];
int pong(int a, int b){
if(memo[a][b] != -1) return memo[a][b];
return memo[a][b] = memo[b][a] = ping(a, b);
}
void findRoute(int N, int a, int b){
memset(memo, -1, sizeof(memo));
int c = pong(a, b); dist[c].push_back(b);
for(int v, i = 1; i <= N; ++i){
if(i == a) continue;
v = pong(a, i);
if(v < c) dist[v].push_back(i);
}
vector<int> ans = {b};
for(int x = c - 1; x >= 0; --x){
for(int nxt : dist[x]){
if(pong(ans.back(), nxt) == 0){
ans.push_back(nxt);
break;
}
}
}
reverse(ans.begin(), ans.end());
for(int i : ans) travelTo(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... |