Submission #856165

#TimeUsernameProblemLanguageResultExecution timeMemory
856165SortingBeech Tree (IOI23_beechtree)C++17
5 / 100
62 ms16432 KiB
#include "beechtree.h"
#include <algorithm>

using namespace std;

const int N = 2e5 + 3;

int n, m, c[N];
vector<int> adj[N];

std::vector<int> beechtree(int N, int M, std::vector<int> P, std::vector<int> C)
{
    n = N, m = M;
    copy(C.begin(), C.end(), c);
    for(int i = 1; i < n; ++i){
        adj[P[i]].push_back(i);
    }

    vector<int> ans;
    ans.push_back(1);
    int same = 0, col = -1;
    for(int i = n - 1; i > 0; --i){
        if(c[i] != col){
            same = 1;
            col = c[i];
        }
        else{
            ++same;
        }
        ans.push_back(same == n - i);
    }
    reverse(ans.begin(), ans.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...