Submission #1203066

#TimeUsernameProblemLanguageResultExecution timeMemory
1203066idonoamSeptember (APIO24_september)C++20
0 / 100
1 ms324 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; int solve(int N, int M, vector<int> F, vector<vector<int>> S) { vector<vector<int>> chi(N); for (int i = 1; i < N; i++) { chi[F[i]].push_back(i); } int op = 1e9; for (int j = 0; j < M; j++) { set<int> s; int cur = 0; for (int i = 0; i < N - 1; i++) { if (s.empty()) cur++; stack<int> st; st.push(S[j][i]); while (!st.empty()) { int a = st.top(); st.pop(); if (s.find(a) == s.end()) { for (int k = 0; k < chi[a].size(); k++) { st.push(chi[a][k]); } } s.insert(a); } s.erase(S[j][i]); } op = min(cur, op); } return op; } /* int main() { cout << solve(5, 2, {-1, 0, 0, 1, 1}, {{1, 2, 3, 4}, {4, 1, 2, 3}}); }*/
#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...