Submission #255164

#TimeUsernameProblemLanguageResultExecution timeMemory
255164Kastandapopa (BOI18_popa)C++11
100 / 100
94 ms384 KiB
// M
#include<bits/stdc++.h>
#include "popa.h"
using namespace std;
/*const int N = 1009;
vector < int > S;
int query(int a, int b, int c, int d)
{
        int mn1 = INT_MAX;
        int mn2 = INT_MAX;
        for (int i = a; i <= b; i ++)
                mn1 = min(mn1, S[i]);
        for (int i = c; i <= d; i ++)
                mn2 = min(mn2, S[i]);
        return mn1 == mn2;
}*/
int solve(int n, int * L, int * R)
{
        for (int i = 0; i < n; i ++)
                L[i] = R[i] = -1;

        vector < int > T;
        T.push_back(0);
        for (int i = 1; i < n; i ++)
        {
                int last = -1;
                while (T.size() && query(T.back(), i, i, i))
                        last = T.back(), T.pop_back();
                if (T.size())
                        R[T.back()] = i;
                L[i] = last;
                T.push_back(i);
        }
        return T[0];
}
/*int main()
{
        int L[N], R[N];
        int n;
        scanf("%d", &n);
        S = vector < int > (n, 0);
        for (int &a : S)
                scanf("%d", &a);

        int root = solve(n, L, R);
        printf("%d\n", root);
        for (int i = 0; i < n; i ++)
                printf("%d %d\n", L[i], R[i]);
        return 0;
}*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...