Submission #704680

# Submission time Handle Problem Language Result Execution time Memory
704680 2023-03-02T15:32:05 Z Ronin13 Cat in a tree (BOI17_catinatree) C++14
0 / 100
1 ms 468 KB
#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 -