Submission #1190448

#TimeUsernameProblemLanguageResultExecution timeMemory
1190448boclobanchatSecret (JOI14_secret)C++20
0 / 100
333 ms4528 KiB
#include"secret.h"
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1024;
struct range { int l,mid,r;vector<int> va,vb; };
range RR[MAXN];
int val[MAXN],cnt=0;
void dnc(int l,int r)
{
	if(r-l<=1) return ;
	int mid=(l+r)/2;
	dnc(l,mid);
	dnc(mid+1,r);
	vector<int> va,vb;
	int x=0,y=0;
	for(int i=mid;i>=l;i--)
	{
		if(i==mid) x=val[i];
		else x=Secret(x,val[i]);
		va.push_back(x);
	}
	for(int i=mid+1;i<=r;i++)
	{
		if(i==mid+1) y=val[i];
		else y=Secret(y,val[i]);
		vb.push_back(y);
	}
	reverse(va.begin(),va.end());
	RR[++cnt]={l,mid,r,va,vb};
}
void Init(int N,int A[])
{
	for(int i=0;i<N;i++) val[i]=A[i];
	dnc(0,N-1);
}
int Query(int l,int r)
{
	if(l==r) return val[l];
	if(l+1==r) return Secret(val[l],val[r]);
	for(int i=1;i<=cnt;i++) if(RR[i].l<=l&&l<=RR[i].mid&&RR[i].mid<r&&r<=RR[i].r) return Secret(RR[i].va[l-RR[i].l],RR[i].vb[r-(RR[i].mid+1)]);
}

Compilation message (stderr)

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