# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
136207 | 2019-07-25T01:25:07 Z | thebes | Cat in a tree (BOI17_catinatree) | C++14 | 6 ms | 4984 KB |
#include <bits/stdc++.h> using namespace std; const int MN = 2e5+5; int N, D, i, x, d[MN], ans; vector<int> adj[MN]; void solve(int n){ vector<int> vec; for(auto v : adj[n]){ solve(v); vec.push_back(max(d[v]-1,0)); } sort(vec.begin(),vec.end(),[](int i,int j){return i>j;}); while(vec.size()>=2){ if(vec[0]+vec[1]<=D) break; else{ ans--; vec.erase(vec.begin()); } } if(vec.empty()||vec[0]==0){ ans ++; d[n] = D; } } int main(){ for(scanf("%d%d",&N,&D),i=2;i<=N;i++){ scanf("%d",&x); adj[x+1].push_back(i); } solve(1); printf("%d\n",ans); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 4984 KB | Output is correct |
2 | Incorrect | 6 ms | 4984 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 4984 KB | Output is correct |
2 | Incorrect | 6 ms | 4984 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 4984 KB | Output is correct |
2 | Incorrect | 6 ms | 4984 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |