Submission #1076331

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
10763312024-08-26 13:05:35fryingducPutovanje (COCI20_putovanje)C++17
110 / 110
92 ms27872 KiB
#include "bits/stdc++.h"
using namespace std;
const int maxn = 2e5 + 5;
const int lg = 19;
int n, ca[maxn], cb[maxn];
vector<int> g[maxn];
int edge_u[maxn], edge_v[maxn], edge_ca[maxn], edge_cb[maxn];
int par[maxn];
int h[maxn];
int f[maxn];
int up[maxn][lg + 1];
void pre_dfs(int u, int prev) {
for(auto v:g[u]) {
if(v == prev) continue;
par[v] = u;
up[v][0] = u;
h[v] = h[u] + 1;
for(int i = 1; i <= lg; ++i) {
up[v][i] = up[up[v][i - 1]][i - 1];
}
pre_dfs(v, u);
}
}
int lca(int u, int v) {
if(h[u] < h[v]) swap(u, v);
for(int i = lg; i >= 0; --i) {
if((h[u] - h[v]) >> i & 1) u = up[u][i];
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...