Submission #163034

#TimeUsernameProblemLanguageResultExecution timeMemory
163034errorgornSecret (JOI14_secret)C++14
100 / 100
646 ms8488 KiB
#include "secret.h"
#include <cstring>
#include <cstdio>
#include <algorithm>
int arr[1005][1005];
int n;

void get(int i,int j){
    if (arr[i][j]!=-1) return;
    else if (arr[i+1][j]!=-1) arr[i][j]=Secret(arr[i][i],arr[i+1][j]);
    else arr[i][j]=Secret(arr[i][j-1],arr[j][j]);
}

void Init(int N, int a[]) {
    n=N;
    memset(arr,-1,sizeof(arr));
    for (int x=0;x<n;x++) arr[x][x]=a[x];


    int l,r;
    bool flag;
    for (int x=2;x<=n;x<<=1){
        l=0,r=x-1;
        flag=true;
        while (l<n){
            if (flag){
                for (int i=r;i>=l;i--) get(i,r);
            }
            else{
                for (int i=l;i<=r;i++) get(l,i);
            }
            l+=x;
            r=std::min(r+x,n-1);
            flag^=true;
        }
    }
}

int Query(int l, int r) {
    if (arr[l][r]!=-1) return arr[l][r];
    for (int x=l;x<r;x++){
        if (arr[l][x]!=-1 && arr[x+1][r]!=-1) return Secret(arr[l][x],arr[x+1][r]);
    }
}

Compilation message (stderr)

secret.cpp: In function 'int Query(int, int)':
secret.cpp:44:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#Verdict Execution timeMemoryGrader output
Fetching results...