Submission #1311526

#TimeUsernameProblemLanguageResultExecution timeMemory
1311526FaresSTHSecret (JOI14_secret)C++20
0 / 100
328 ms4304 KiB
#include"bits/stdc++.h"
#include "secret.h"
using namespace std;
using ll=long long;
#define S second
#define F first
const int N=10;
vector<vector<int>>dst(N,vector<int>(1<<N,-1));
vector<int>a;
bool bt(int x,int y){
	return (x&(1<<(9-y)))>0;
}
void Init(int n,int A[]){
	for(int i=0;i<n;i++)a.push_back(A[i]);
	for(int l=0;l<10;l++){
		for(int i=0;i<n;i++){
			if(bt(i,l)){
				if(!bt(i-1,l))dst[l][i]=a[i];
				else dst[l][i]=Secret(dst[l][i-1],a[i]);
			}
		}
		for(int i=n-1;i>=0;i--){
			if(!bt(i,l)){
				if(bt(i+1,l))dst[l][i]=a[i];
				// else dst[l][i]=dst[l][i+1];
				// Secret(a[i],-1);
				else dst[l][i]=Secret(a[i],-1);
			}
		}
	}
}
int Query(int l,int r){
	// if(l==r)return a[l];
	// int msb=__builtin_clz(l^r)-22;
	int res=a[l];
	for(int i=l+1;i<=r;i++)res=Secret(res,a[i]);
	return res;
	// return Secret(dst[msb][l],dst[msb][r]);
}
#Verdict Execution timeMemoryGrader output
Fetching results...