Submission #1336027

#TimeUsernameProblemLanguageResultExecution timeMemory
1336027a.pendovSecret (JOI14_secret)C++20
0 / 100
342 ms8376 KiB
#include "secret.h"
#include <bits/stdc++.h>
using namespace std;
const int MAXN=1009;
int ans[MAXN][MAXN],mas[MAXN];

void rec(int l,int r)
{
    if(l==r)return;
    int mid=(l+r)/2;

    ans[mid][mid]=mas[mid];
    ans[mid+1][mid+1]=mas[mid+1];

    for(int i=mid-1;i>=l;i--)ans[i][mid]=Secret(mas[i],ans[i+1][mid]);
    for(int i=mid+2;i<=r;i++)ans[mid+1][i]=Secret(ans[mid+1][i-1],mas[i]);
    rec(l,mid);
    rec(mid+1,r);
}

void Init(int N, int A[])
{
    for(int i=0;i<MAXN;i++)for(int j=0;j<MAXN;j++)ans[i][j]=-1;

    for(int i=0;i<N;i++)
    {
        mas[i]=A[i];
        ans[i][i]=mas[i];
    }
    rec(0,N-1);
}

int Query(int L, int R)
{
    if(ans[L][R]!=-1)return ans[L][R];
    for(int i=L+1;i<R;i++)
    {
        if(ans[L][i]!=-1&&ans[i+1][R]!=-1)return Secret(ans[L][i],ans[i+1][R]);
    }
    return -1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...