Submission #1269713

#TimeUsernameProblemLanguageResultExecution timeMemory
1269713marizaBeech Tree (IOI23_beechtree)C++20
0 / 100
1 ms328 KiB
#include "beechtree.h"
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const ll N=200000;

vector<ll> t[N];

bool comp(ll a, ll b){
    return t[a].size()>t[b].size();
}

vector<int> beechtree(int n, int m, vector<int> p, vector<int> c){
    for(ll i=1; i<n; i++){
        t[p[i]].push_back(i);
    }

    vector<int> ans;
    set<ll> s[n];
    for(ll i=0; i<n; i++){
        for(auto j:t[i]){
            s[i].insert(c[j]);
        }
        ans.push_back(s[i].size()==t[i].size());
        ans[0]&=(s[i].size()==t[i].size());
    }

    ll x[n];
    for(ll i=0; i<n; i++){
        x[i]=i;
    }
    sort(x+1,x+n);

    for(ll i=2; i<n; i++){
        for(auto j:s[i]) ans[0]&=(s[i-1].find(j)!=s[i-1].end());
    }

    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...