# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
132487 | 2019-07-19T03:55:25 Z | 이온조(#3199) | Cat in a tree (BOI17_catinatree) | C++14 | 6 ms | 4984 KB |
#include <bits/stdc++.h> using namespace std; int N, D, d[200009]; vector<int> adj[200009]; bool chk[200009]; void dfs(int x, int p, int l) { if(l <= 0) return; chk[x] = 1; for(auto& it: adj[x]) if(it != p && !chk[it]) dfs(it, x, l-1); } int main() { scanf("%d%d",&N,&D); for(int i=1; i<N; i++) { int foo; scanf("%d",&foo); adj[foo].push_back(i); adj[i].push_back(foo); d[i] = d[foo] + 1; } vector<int> S; for(int i=0; i<N; i++) S.push_back(i); sort(S.begin(), S.end(), [&](int PP, int QQ) { return d[PP] > d[QQ]; }); int ans = 0; for(auto& it: S) { if(chk[it]) continue; ++ans; dfs(it, it, D); } printf("%d", ans); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 4984 KB | Output is correct |
2 | Correct | 6 ms | 4984 KB | Output is correct |
3 | Correct | 6 ms | 4984 KB | Output is correct |
4 | Incorrect | 6 ms | 4984 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 4984 KB | Output is correct |
2 | Correct | 6 ms | 4984 KB | Output is correct |
3 | Correct | 6 ms | 4984 KB | Output is correct |
4 | Incorrect | 6 ms | 4984 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 4984 KB | Output is correct |
2 | Correct | 6 ms | 4984 KB | Output is correct |
3 | Correct | 6 ms | 4984 KB | Output is correct |
4 | Incorrect | 6 ms | 4984 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |