Submission #1326941

#TimeUsernameProblemLanguageResultExecution timeMemory
1326941husseinjuandaSeptember (APIO24_september)C++20
100 / 100
97 ms6584 KiB
#include "september.h" #include <bits/stdc++.h> using namespace std; int co = 0; vector<int> par; vector<bool> vis; vector<int> b; void dfs(int k){ if(b[k] == 0 && k != 0 && vis[k]){ b[par[k]]--; co++; dfs(par[k]); } } int solve(int n, int m, std::vector<int> f, std::vector<std::vector<int>> s){ par = f; vis.clear(); b.clear(); vector<bool> d(n, false); vector<int> freq(n, 0); int l = 0; for(int i = 0; i < n-1; i++){ for(int y = 0; y < m; y++){ freq[s[y][i]]++; if(freq[s[y][i]] == m){ l++; } } if(l == i+1){ d[i] = true; } } co = 0; vis.resize(n, false); b.resize(n, 0); int ns = 0; for(int y = 1; y < n; y++){ b[f[y]]++; } for(int i = 0; i < n-1; i++){ int k = s[0][i]; vis[k] = true; dfs(k); if(co == i+1){ if(d[i]){ ns++; } } } return ns; }
#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...