Submission #1173050

#TimeUsernameProblemLanguageResultExecution timeMemory
1173050Robert_juniorSeptember (APIO24_september)C++20
100 / 100
87 ms14016 KiB
#include<bits/stdc++.h> using namespace std; const int N = 2e5 + 7; vector<int>g[N]; int sz[N], pr[N]; int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S){ vector<int>cnt(N); for(int i = 0; i < N; i++){ g[i].clear(); sz[i] = cnt[i] = pr[i] = 0; } for(int i = 1; i < N; i++){ pr[i] = F[i]; g[F[i]].push_back(i); } for(int i = 0; i < N; i++){ sz[i] = g[i].size(); } 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(cnt[S[i][j]] == M){ int v = S[i][j]; while(v != 0 && cnt[v] == M && sz[v] == 0){ sz[pr[v]]--; v = pr[v]; cur++; } } } 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...