Submission #1274022

#TimeUsernameProblemLanguageResultExecution timeMemory
1274022kawhietSeptember (APIO24_september)C++20
0 / 100
1093 ms1114112 KiB
#include <bits/stdc++.h> #include "september.h" using namespace std; constexpr int N = 1e5 + 1; set<int> t[N]; vector<int> g[N]; void dfs(int u, int p) { t[u].insert(u); for (auto v : g[u]) { if (v == p) continue; dfs(v, u); for (auto x : t[v]) { t[u].insert(x); } } } int solve(int n, int m, vector<int> p, vector<vector<int>> s) { for (int i = 1; i < n; i++) { g[p[i]].push_back(i); g[i].push_back(p[i]); } dfs(0, -1); int res = 0; vector<set<int>> a(m); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < m; j++) { a[j].insert(s[j][i]); } bool is = 1; for (int j = 0; j < m; j++) { for (auto x : a[j]) { for (auto y : t[x]) { if (!a[j].count(y)) { is = 0; break; } } if (!is) break; } if (!is) break; } if (is) { res++; for (int j = 0; j < m; j++) { a[j].clear(); } } } 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...