Submission #1201808

#TimeUsernameProblemLanguageResultExecution timeMemory
1201808noopSeptember (APIO24_september)C++20
45 / 100
83 ms3184 KiB
#include <bits/stdc++.h> using namespace std; int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) { vector<int> g(N,0); vector<bool> s(N,0); vector<vector<int> > v(M,vector<int>(N)); unordered_set<int> req; vector<int> e; int ans=0,t=0,c,p; bool flag; for (int i=1; i<N; i++){ g[F[i]]++; } for (int i=0; i<S[0].size(); i++){ c=S[0][i]; if (g[c]){ t++; s[c]=1; } p=F[c]; g[p]--; if (!g[p] and s[p]){ t--; s[p]=0; } for (int r=0; r<M; r++){ v[r][S[r][i]]++; e.push_back(S[r][i]); } for (int i=0; i<e.size(); i++){ flag=1; c=e[i]; for (int r=1; r<M; r++){ if (v[r][c]!=v[0][c]){ flag=0; break; } } if (flag){ req.erase(c); } } e.clear(); if (!t and req.empty()){ ans++; } } 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...