#include <bits/stdc++.h>
#define int long long
#define ll long long
#define ld long double
#define ar array
#define all(v) v.begin(), v.end()
using namespace std;
const int N = 5e5 + 20;
const int LOG = 20;
const int INF = 1e12;
const int MOD = 1e9 + 7;
void chmin(int &x,int y){x = min(x, y);};
void chmax(int &x,int y){x = max(x, y);};
void mm(int &x){x = (x % MOD + MOD) % MOD;};
signed main(){ios_base::sync_with_stdio(false);cin.tie(0);
int n, x;
cin>>n>>x;
vector<int> g[n];
for(int i = 1;i < n;i++){
int x;
cin>>x;
g[x].push_back(i);
}
int ans = n;
int dp[n] = {0};
for(int i = n- 1;i >= 0;i--){
for(auto u: g[i]){
if(dp[u] + dp[i] + 1 < x){
ans--;
chmax(dp[i], dp[u] + 1);
}else chmin(dp[i], dp[u] + 1);
}
}
cout<<ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |