Submission #1173044

#TimeUsernameProblemLanguageResultExecution timeMemory
1173044ladnoooSeptember (APIO24_september)C++20
0 / 100
1095 ms2632 KiB
#include <bits/stdc++.h>
using namespace std;

const int maxN = 1e5 + 7;
vector<int> g[maxN];
int par[maxN];

void dfs(int v) {
    par[v] = -1;
    for(int u : g[v]) {
        dfs(u);
    }
}
int solve(int N, int M, vector<int> F, vector<vector<int>> S) {
    int szz = F.size();
    for(int i = 1; i < szz; i++) {
        par[F[i]]++;
        g[F[i]].push_back(i);
    } 
    vector<int> m = S[0];
    int sz = m.size();
    int sum = 0;
    for(int i = 0; i < sz; i++) {
        if(par[m[i]] == 0) {
            par[F[m[i]]]--;
            sum++;
        } else if(par[m[i]] > 0) {
            dfs(m[i]);
            sum++;
        }
    }   
    return sum;;
}
#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...