Submission #1207385

#TimeUsernameProblemLanguageResultExecution timeMemory
1207385HappyCapybaraBeech Tree (IOI23_beechtree)C++20
9 / 100
2096 ms2162688 KiB
#include "beechtree.h"
#include<bits/stdc++.h>
using namespace std;

vector<int> beechtree(int N, int M, vector<int> P, vector<int> C){
    vector<vector<int>> st(N);
    for (int i=N-1; i>=0; i--){
        st[i].push_back(i);
        if (i > 0){
            for (int x : st[i]) st[P[i]].push_back(x);
        }
    }
    vector<int> res(N, 0);
    for (int i=0; i<N; i++){
        sort(st[i].begin(), st[i].end());
        while (true){
            res[i] = 1;
            for (int j=1; j<st[i].size(); j++){
                int f = 0;
                for (int k=1; k<j; k++) f += (C[st[i][j]] == C[st[i][k]]);
                if (P[st[i][j]] != st[i][f]) res[i] = 0;
            }
            if (res[i]) break;
            next_permutation(st[i].begin(), st[i].end());
            if (st[i][0] != i) break;
        }
    }
    return res;
}
#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...