#include "fun.h"
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define ll long long
#define ld long double
const int N=1e5+50,lg=18;
vector<int>E[N];
int par[N][lg+1],depth[N];
void DFS(int u,int p=-1){
par[u][0]=p;
for(int i=1;i<=lg;i++){if(par[u][i-1]!=-1)par[u][i]=par[par[u][i-1]][i-1];else par[u][i]=-1;}
for(auto i:E[u]){
if(i!=p){
depth[i]=depth[u]+1;
DFS(i,u);
}
}
}
int LCA(int u,int v){
if(depth[u]<depth[v])swap(u,v);
for(int i=lg;i>=0;i--) if(par[u][i]!=-1&&depth[par[u][i]]>=depth[v]) u=par[u][i];if(u==v)return u;
for(int i=lg;i>=0;i--) if(par[u][i]!=par[v][i]) u=par[u][i],v=par[v][i];return par[u][0];
}
int Dist(int u,int v){return depth[u]+depth[v]-2*depth[LCA(u,v)];}
//int dist[1000][1000];
vector<int> createFunTour(int n, int q){
for(int i=1;i<n;i++){
E[i].pb(i-1>>1);
E[i-1>>1].pb(i);
}
DFS(0);
/*for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
dist[i][j]=dist[j][i]=hoursRequired(i,j);
}
}*/
int u=0;
for(int i=0;i<n;i++) if(Dist(u,0)<Dist(i,0)) u=i;
bool was[n+10]={false};
vector<int>res={u};was[u]=true;
for(int j=1;j<n;j++){
int maks=0,v;
for(int i=0;i<n;i++){
if(was[i]) continue;
if(maks<=Dist(u,i)) maks=Dist(u,i),v=i;
}
res.pb(v);
was[v]=true;
u=v;
}
return res;
/*int u=0;
for(int i=0;i<n;i++) if(dist[u][0]<dist[i][0]) u=i;
bool was[n+10]={false};
vector<int>res={u};was[u]=true;
for(int j=1;j<n;j++){
int maks=0,v;
for(int i=0;i<n;i++){
if(was[i]) continue;
if(maks<=dist[u][i]) maks=dist[u][i],v=i;
}
res.pb(v);
was[v]=true;
u=v;
}
return res;*/
/*int H = hoursRequired(0, N - 1);
int A = attractionsBehind(0, N - 1);
return std::vector<int>(N);*/
}
# | 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... |