제출 #1333998

#제출 시각아이디문제언어결과실행 시간메모리
1333998hackstar비밀 (JOI14_secret)C++20
30 / 100
384 ms4300 KiB
#include<bits/stdc++.h>
using namespace std;
#include "secret.h"

vector<int>tree;

int a[1001];

int n;

void build(int v,int l,int r)
{
	if(l==r)
	{
		tree[v]=a[l];
		return;
	}
	int m=l+r>>1;
	build(v*2,l,m);
	build(v*2+1,m+1,r);
	tree[v]=Secret(tree[v*2],tree[v*2+1]);
}

int get(int v,int l,int r,int L,int R)
{
	if(l==L && r==R)
		return tree[v];
	int m=l+r>>1;
	if(L>m)
		return get(v*2+1,m+1,r,L,R);
	if(R<=m)
		return get(v*2,l,m,L,R);
	return Secret(get(v*2,l,m,L,m),get(v*2+1,m+1,r,m+1,R));
}

void Init(int N, int A[]) 
{
	n=N;
	for(int i=0;i<N;++i)
		a[i]=A[i];
	tree.assign(4*N,0);
	build(1,0,N-1);
}

int Query(int L, int R) 
{
	return get(1,0,n-1,L,R);
}

// g++ -O2 -std=c++11 -o grader grader.cpp secret.cpp
#Verdict Execution timeMemoryGrader output
Fetching results...