제출 #1311524

#제출 시각아이디문제언어결과실행 시간메모리
1311524FaresSTH비밀 (JOI14_secret)C++20
0 / 100
333 ms4436 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],dst[l][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...