답안 #989297

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
989297 2024-05-27T22:23:12 Z aaaaaarroz 비밀 (JOI14_secret) C++17
100 / 100
302 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;

    // left side

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

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

    // right side

    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);

}
# 결과 실행 시간 메모리 Grader output
1 Correct 83 ms 2388 KB Output is correct - number of calls to Secret by Init = 3578, maximum number of calls to Secret by Query = 1
2 Correct 83 ms 2384 KB Output is correct - number of calls to Secret by Init = 3586, maximum number of calls to Secret by Query = 1
3 Correct 83 ms 2384 KB Output is correct - number of calls to Secret by Init = 3595, maximum number of calls to Secret by Query = 1
4 Correct 299 ms 4436 KB Output is correct - number of calls to Secret by Init = 7969, maximum number of calls to Secret by Query = 1
5 Correct 281 ms 4440 KB Output is correct - number of calls to Secret by Init = 7978, maximum number of calls to Secret by Query = 1
6 Correct 284 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 283 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 292 ms 4432 KB Output is correct - number of calls to Secret by Init = 7978, maximum number of calls to Secret by Query = 1
9 Correct 300 ms 4392 KB Output is correct - number of calls to Secret by Init = 7978, maximum number of calls to Secret by Query = 1
10 Correct 302 ms 4472 KB Output is correct - number of calls to Secret by Init = 7978, maximum number of calls to Secret by Query = 1