# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
801689 | manizare | Mergers (JOI19_mergers) | C++14 | 1960 ms | 210976 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>
#define pii pair <int,int>
#define F first
#define S second
#define all(a) a.begin(),a.end()
#define pb push_back
using namespace std ;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const int maxn = 5e5 + 10 , inf = 1e9 , mod = 1e9 + 7 , lg = 21 ;
int dp[maxn][lg+1] , d[maxn] , dis[maxn] , c[maxn] , mark[maxn] , sm[maxn] ;
vector <int> G[maxn] , vec[maxn] ;
map <pii ,int>mp ;
int up(int v ,int d){
for(int i =0 ; i < lg ; i++){
if(d>>i&1)v = dp[v][i] ;
}
return v;
}
int lca(int v ,int u){
if(dis[v] < dis[u])swap(v ,u) ;
v = up(v , dis[v] - dis[u]) ;
for(int i = lg-1 ; i >= 0 ; i--){
if(dp[v][i] != dp[u][i]){
v = dp[v][i] ;
u = dp[u][i] ;
}
}
if(v == u)return v;
return dp[v][0] ;
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... |