#include <bits/stdc++.h>
using namespace std;
int p[10001];
vector<vector<int>> a;
vector<int> v;
void dfs(int u, int k, int cnt){
v[u] = cnt;
for(int e : a[u]){
if(e != k) dfs(e, u, cnt + 1);
}
}
int vt[7], ml = -1;
bool tr = false;
int send_message(int N, int i, int Pi){
p[i] = Pi;
if(i >= N - 7){
a.assign(N + 1, {});v.assign(N + 1, 0);
for(int j = 1; j <= N; j++)a[p[j]].push_back(j);
dfs(0, -1, 0); int mx = 1;
for(int j = 2; j <= N; j++)if(v[j] > v[mx]) mx = j;
if(mx != ml and i > N-7){
ml = mx;tr = false;return 4;
}
if(!tr){
for(int j = 6; j >= 0; j--){
vt[j] = mx % 4;
mx /= 4;
}
tr = true;
}
return vt[i-N+7];
}
return 0;
}
pair<int,int> longest_path(vector<int> S){
int mx = 1;
for(int i = S.size()-7; i < S.size(); i++){
if(S[i] == 4) return {0, i};
mx = mx * 4 + S[i];
}
return {0, mx};
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |