제출 #1175005

#제출 시각아이디문제언어결과실행 시간메모리
1175005ZeroCoolCat in a tree (BOI17_catinatree)C++20
100 / 100
27 ms10940 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...