Submission #1308329

#TimeUsernameProblemLanguageResultExecution timeMemory
1308329glupanCat in a tree (BOI17_catinatree)C++20
0 / 100
1 ms332 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long

const int MOD = 998244353;
const int MAX_N = 2e5+5;

vector<int>adj[MAX_N];

void solve() {
    int Ans=0;
    int n,d; cin >> n >> d;
    for(int i=1; i<n; i++) {
        int x; cin >> x;
        adj[i].push_back(x);
        adj[x].push_back(i);
    }
    for(int i=0; i<n; i++) {
        queue<pair<int,int>>q;
        vector<int>visited(n+1,0);
        int ans=1;
        q.push({i,0});
        visited[i] = 1;
        while(!q.empty()) {
            pair<int,int> v = q.front();
            //cout << v.first << " " << v.second << endl;
            if(v.second > 0 and v.second % d == 0) ans++;
            q.pop();
            for(auto u : adj[v.first]) {
                if(!visited[u]) {
                    visited[u] = 1;
                    q.push({u, v.second+1});
                }
            }
        }
        Ans = max(Ans, ans);
    }
    cout << Ans << endl;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    int t=1;
    while(t--) solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...