Submission #1018239

# Submission time Handle Problem Language Result Execution time Memory
1018239 2024-07-09T17:04:11 Z TsotneSV Secret (JOI14_secret) C++14
100 / 100
317 ms 4692 KB
#include "secret.h"
#include <bits/stdc++.h>
using namespace std;

const int maxn = 1000;
const int maxlvl = 15;

int n;
int DVC[maxlvl][maxn];

void create(int lvl,int l,int r,int A[]) {

    if(l == r) {
        DVC[lvl][l] = A[l];
        return;
    }

    int m = (l + r)>>1; 

    DVC[lvl][m] = A[m]; 

    for (int i = m - 1; i >= l; i--) DVC[lvl][i] = Secret(A[i], DVC[lvl][i + 1]);

    DVC[lvl][m+1] = A[m+1];

    for (int i = m + 2; i <= r; i++) DVC[lvl][i] = Secret(DVC[lvl][i - 1], A[i]);

    create(lvl+1,l,m,A); 
    create(lvl+1,m+1,r,A);

}

int get(int lvl,int l,int r,int L,int R) {

    if(l == r) return DVC[lvl][L];

    int m = (l + r)>>1;

    if(R <= m) return get(lvl+1,l,m,L,R);
    if(L >= m+1) return get(lvl+1,m+1,r,L,R);
    return Secret(DVC[lvl][L],DVC[lvl][R]);

}

void Init(int N, int A[]) {
    n = N;
    create(0,0,n-1,A);
}

int Query(int L, int R) {
    return get(0,0,n-1,L,R);
} 
# Verdict Execution time Memory Grader output
1 Correct 86 ms 2748 KB Output is correct - number of calls to Secret by Init = 3578, maximum number of calls to Secret by Query = 1
2 Correct 84 ms 2748 KB Output is correct - number of calls to Secret by Init = 3586, maximum number of calls to Secret by Query = 1
3 Correct 87 ms 2652 KB Output is correct - number of calls to Secret by Init = 3595, maximum number of calls to Secret by Query = 1
4 Correct 309 ms 4688 KB Output is correct - number of calls to Secret by Init = 7969, maximum number of calls to Secret by Query = 1
5 Correct 305 ms 4432 KB Output is correct - number of calls to Secret by Init = 7978, maximum number of calls to Secret by Query = 1
6 Correct 317 ms 4692 KB Output is correct - number of calls to Secret by Init = 7978, maximum number of calls to Secret by Query = 1
7 Correct 306 ms 4432 KB Output is correct - number of calls to Secret by Init = 7978, maximum number of calls to Secret by Query = 1
8 Correct 313 ms 4268 KB Output is correct - number of calls to Secret by Init = 7978, maximum number of calls to Secret by Query = 1
9 Correct 305 ms 4436 KB Output is correct - number of calls to Secret by Init = 7978, maximum number of calls to Secret by Query = 1
10 Correct 315 ms 4436 KB Output is correct - number of calls to Secret by Init = 7978, maximum number of calls to Secret by Query = 1