Submission #1152061

#TimeUsernameProblemLanguageResultExecution timeMemory
1152061ElayV13September (APIO24_september)C++20
0 / 100
1095 ms1114112 KiB
#include "september.h"
#include <bits/stdc++.h>
using namespace std;

const int MAX = 1e5 + 5;
const int inf = 1e9;

int res = 0 , NC;
vector < vector < int > > adj;
vector < int > idx;
int cur = inf;

void dfs(int v ,int p)
{
      if(idx[v] < cur){
            res++;
            cur = idx[v];
      }
      for(int u : adj[v]){
            if(u == p) continue;
            dfs(u , v);
      }
}

int solve(int N, int M, vector < int > F, vector < vector < int > > S){
      idx.resize(N);
      adj.resize(N);
      for(int i = 1;i <= N - 1;i++){
            adj[i].push_back(F[i]);
            adj[F[i]].push_back(i);
      }
      NC = N;
      for(int i = 0;i <= N - 2;i++)
      {
            idx[S[0][i]] = i;
      }
      dfs(1 , -1);
      return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...