# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1201716 | noop | September (APIO24_september) | C++20 | 0 ms | 0 KiB |
#include "september.h"
#include <vector>
#include <unordered_set>
using namespace std;
vector<unordered_set<int> > g;
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
g.clear();
int ans=0;
unordered_set<int> s;
for (int i=1; i<N; i++){
g[F[i]].insert(i);
}
for (int i=0; i<S[0].size(); i++){
if (g[S[0][i]].size()){
s.insert(S[0][i]);
}
g[F[S[0][i]]].erase(S[0][i]);
if (!g[F[S[0][i]]]].size()){
s.erase(F[S[0][i]]]);
}
if (!s.size()){
ans++;
}
}
return ans;
}