#include <bits/stdc++.h>
#define ll long long
#define f first
#define s second
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pb push_back
#define epb emplace_back
using namespace std;
const int nmax = 2000 + 1;
vector <vector <pii> > cent(nmax);
vector <bool> marked(nmax);
vector <int> sz(nmax);
vector <int> mx(nmax);
vector <vector <int> > g(nmax);
vector <int> cur(nmax, 1e9);
int d[nmax][nmax];
void DFS(int v, int ind, int e = -1){
for(int to : g[v]){
if(to == e) continue;
d[to][ind] =d[v][ind] + 1;
DFS(to, ind, v);
}
}
vector <pii> vv;
void stupidguy(int v, int d, int e = -1){
vv.pb({d, v});
for(int to : g[v]){
if(to == e) continue;
stupidguy(to, d + 1, v);
}
}
vector <int> a;
int getmn(int x){
int cur = 1e9;
for(int to : a){
cur = min(cur, d[to][x]);
}
return cur;
}
int main(){
ios_base::sync_with_stdio(false); cin.tie(0);
int n; cin >> n;
int D; cin >> D;
for(int i = 1; i < n; i++){
int x; cin >> x;
g[x].pb(i);
g[i].pb(x);
}
for(int i = 0; i < n; i++)
DFS(i, i);
sort(vv.begin(), vv.end());
int ans = 0;
stupidguy(0, 0);
for(int i = vv.size() - 1; i >= 0; i--){
int x = vv[i].s;
if(getmn(x) >= D){
ans++;
a.pb(x);
}
}
cout << ans;
return 0;
}
/* - - - - - - - - - - - - - -
| ## |
| # ## # |
| ##### ## ##### |
| # ## # |
| ## |
| ##########################|
| ## |
| # ## # |
| ##### ## ##### |
| # ## # |
| ## |
- - - - - - - - - - - - - -
*/
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
468 KB |
Output is correct |
2 |
Correct |
0 ms |
468 KB |
Output is correct |
3 |
Correct |
1 ms |
468 KB |
Output is correct |
4 |
Correct |
0 ms |
468 KB |
Output is correct |
5 |
Correct |
1 ms |
468 KB |
Output is correct |
6 |
Correct |
0 ms |
468 KB |
Output is correct |
7 |
Correct |
1 ms |
468 KB |
Output is correct |
8 |
Correct |
1 ms |
468 KB |
Output is correct |
9 |
Correct |
0 ms |
468 KB |
Output is correct |
10 |
Incorrect |
0 ms |
468 KB |
Output isn't correct |
11 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
468 KB |
Output is correct |
2 |
Correct |
0 ms |
468 KB |
Output is correct |
3 |
Correct |
1 ms |
468 KB |
Output is correct |
4 |
Correct |
0 ms |
468 KB |
Output is correct |
5 |
Correct |
1 ms |
468 KB |
Output is correct |
6 |
Correct |
0 ms |
468 KB |
Output is correct |
7 |
Correct |
1 ms |
468 KB |
Output is correct |
8 |
Correct |
1 ms |
468 KB |
Output is correct |
9 |
Correct |
0 ms |
468 KB |
Output is correct |
10 |
Incorrect |
0 ms |
468 KB |
Output isn't correct |
11 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
468 KB |
Output is correct |
2 |
Correct |
0 ms |
468 KB |
Output is correct |
3 |
Correct |
1 ms |
468 KB |
Output is correct |
4 |
Correct |
0 ms |
468 KB |
Output is correct |
5 |
Correct |
1 ms |
468 KB |
Output is correct |
6 |
Correct |
0 ms |
468 KB |
Output is correct |
7 |
Correct |
1 ms |
468 KB |
Output is correct |
8 |
Correct |
1 ms |
468 KB |
Output is correct |
9 |
Correct |
0 ms |
468 KB |
Output is correct |
10 |
Incorrect |
0 ms |
468 KB |
Output isn't correct |
11 |
Halted |
0 ms |
0 KB |
- |