Submission #1152040

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

const int MAX = 1e5 + 5;

int res = 0 , NC;
vector < vector < int > > adj;
vector < int > FC;
vector < vector < int > > SC;
map < int , int > used;

void dfs(int v , int p)
{
      for(int i = 0;i <= NC - 2;i++)
      {
            if(SC[0][i] == v && !used[i]){
                  res++;
                  for(int j = i;j <= NC - 2;j++){
                        used[j] = 1;
                  }
            }
      }
      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){
      adj.resize(N);
      FC = F;
      SC = S;
      NC = N;
      for(int i = 1;i <= N - 1;i++){
            adj[F[i]].push_back(i);
            adj[i].push_back(F[i]);
      }
      dfs(0 , -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...