#include "fun.h"
#include <bits/stdc++.h>
using namespace std;
int f;
void dfs(int st, vector<int>(&g)[], int p, int dep, int d[], bool rem[]){
d[st]=dep;
if(d[f]<dep){
f=st;
}
for(int i : g[st]){
if(i==p||rem[i])
continue;
dfs(i,g,st,dep+1,d,rem);
}
}
int findFarthest(int x, vector<int>(&g)[], bool rem[], int n){
f=x;
int d[n];
fill(d,d+n,0);
dfs(x,g,-1,0,d,rem);
return f;
}
vector<int> createFunTour(int n, int q) {
// int H = hoursRequired(0, N - 1);
//int A = attractionsBehind(0, N - 1);
vector<int>g[n];
vector<int>ans;
for(int i = 0;i<n;i++){
for(int j = i+1;j<n;j++){
if(hoursRequired(i,j)==1){
g[i].push_back(j);
g[j].push_back(i);
}
}
}
//graph acquired
bool rem[n];
fill(rem,rem+n,0);
int x = findFarthest(0,g,rem, n);
for(int i = 0;i<n;i++){
//i just for counting
ans.push_back(x);
rem[x]=1;
x=findFarthest(x,g,rem, n);
}
return ans;
}
# | 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... |