Submission #208531

#TimeUsernameProblemLanguageResultExecution timeMemory
208531dolphingarlicpopa (BOI18_popa)C++14
100 / 100
102 ms500 KiB
#include "popa.h"

int P[1000];

int solve(int N, int* L, int* R) {
    int root = -1;
    
    for (int i = 0; i < N; i++) {
        L[i] = R[i] = P[i] = -1;
        
        int par = i - 1;
        while (par != -1 && query(i, i, par, i)) {
            R[par] = L[i];
            P[L[i]] = par;
            L[i] = par;
            int parpar = P[par];
            P[par] = i;
            par = parpar;
        }
        
        if (par == -1) {
            L[i] = root;
            if (root != -1) P[root] = i;
            root = i;
        } else {
            R[par] = i;
            P[i] = par;
        }
    }
    
    return root;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...