Submission #1332946

#TimeUsernameProblemLanguageResultExecution timeMemory
1332946edoSeptember (APIO24_september)C++20
100 / 100
102 ms10688 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

#include "september.h"
const int nax = 1e5;
bool vis[nax + 10];
vector<int> g[nax];
int cnt;

void dfs(int u) {
    if(vis[u]) return;
    vis[u] = 1;
    cnt++;
    for(int v : g[u]) {
        dfs(v);
    }
}

int solve(int N, int M, vector<int> F, vector<vector<int>> S) {
    for(int i = 0; i < N + 2; i++) {
        vis[i] = 0;
        g[i].clear();
    }
    for(int i = 1; i < N; i++) {
        g[F[i]].push_back(i);
    }
    cnt = 0;
    int ans = 0;
    for(int i = 0; i < N - 1; i++) {
        for(int j = 0; j < M; j++) {
            dfs(S[j][i]);
        }
        if(!--cnt) ans+=1;
    }

    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...