제출 #852586

#제출 시각아이디문제언어결과실행 시간메모리
852586sleepntsheep비밀 (JOI14_secret)C++17
30 / 100
404 ms4428 KiB
#include "secret.h"

#define N 1005

int n, *a, st[10][N];

void Init(int n_, int *a_)
{
    n = n_; a = a_;

    for (int i = 0; i < n; ++i) st[0][i] = a[i];

    for (int h = 1; (1 << h) <= n; ++h)
    {
        for (int j = 0; j < n; ++j)
        {
            if (j + (1 << h) > n) continue;
            st[h][j] = Secret(st[h-1][j], st[h-1][j+(1<<(h-1))]);
        }
    }
}

int Query(int l, int r)
{
    int z = a[l++];
    for (int h = 10; h >= 0; --h)
    {
        if ((1 << h) <= r-l+1)
        {
            z = Secret(z, st[h][l]);
            l += 1 << h;
        }
    }
    return z;
}
#Verdict Execution timeMemoryGrader output
Fetching results...