Submission #1173026

#TimeUsernameProblemLanguageResultExecution timeMemory
1173026Robert_juniorSeptember (APIO24_september)C++17
0 / 100
1096 ms4932 KiB
#include<bits/stdc++.h> using namespace std; const int N = 2e5 + 7; vector<int>g[N]; int sz[N], pr[N]; void dfs(int v, int p){ pr[v] = p; sz[v] = 1; for(auto to : g[v]){ if(to == p) continue; dfs(to, v); sz[v] += sz[to]; } } int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S){ vector<int>cnt(N); for(int i = 1; i < N; i++){ g[F[i]].push_back(i); sz[i] = cnt[i] = pr[i] = 0; } dfs(0, 0); int cur = 0; int ans = 0; int j = 0; while(j < N - 1){ for(int i = 0; i < M; i++){ cnt[S[i][j]]++; if(sz[S[i][j]] > 1){ return 1; } if(cnt[S[i][j]] == M){ cur++; sz[pr[S[i][j]]]--; } } if(cur == j + 1) ans++; j++; } return ans; }
#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...