Submission #1203027

#TimeUsernameProblemLanguageResultExecution timeMemory
1203027monstermceldritchSeptember (APIO24_september)C++20
0 / 100
1 ms464 KiB
#include <bits/stdc++.h>

using namespace std;
typedef vector<int> vi;
typedef vector<vi> vii;

int solve(int n, int m, vector<int> f, vector<vector<int>> s)
{
    vii children(n, vi());
    for (int i = 1; i < n; i++)
        children[f[i]].push_back(i);
    if (m!=1)
        return 1;
    vi constraint = s[0];
    vector<bool> done(n, false);
    int threshold = 0, ans = 0;
    for (int i = 0; i < n-1; i++)
    {
        for (auto j : children[constraint[i]])
        {
            if (!done[j])
            {
                for (int k = max(i+1, threshold+1); k < n; k++)
                {
                    done[constraint[k]] = true;
                    if (constraint[k] == j)
                    {
                        threshold = k;
                    }
                }
            }
        }
        if (i >= threshold)
            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...