# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
128273 | mohammedehab2002 | Mergers (JOI19_mergers) | C++11 | 1603 ms | 144248 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 <iostream>
#include <vector>
#include <set>
using namespace std;
int st[500005],dep[500005],dp[20][500005],q[500005],par[500005],deg[500005];
set<pair<int,int> > s;
vector<int> v[500005],inv[500005],comp[500005];
void pre(int node,int p)
{
dep[node]=dep[p]+1;
dp[0][node]=p;
for (int i=1;i<20;i++)
dp[i][node]=dp[i-1][dp[i-1][node]];
for (int u:v[node])
{
if (u!=p)
pre(u,node);
}
}
int lca(int u,int v)
{
if (dep[u]<dep[v])
swap(u,v);
int dist=dep[u]-dep[v];
for (int i=0;i<20;i++)
{
if (dist&(1<<i))
u=dp[i][u];
}
if (u==v)
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... |