Submission #48660

#TimeUsernameProblemLanguageResultExecution timeMemory
48660PajarajaSecret (JOI14_secret)C++17
100 / 100
667 ms9480 KiB
#include "secret.h" #include <bits/stdc++.h> #define MAXN 1007 using namespace std; int val[MAXN][MAXN],a[MAXN],n; void rek(int l,int r) { int s=(l+r)/2; for(int i=s-1;i>=l;i--) val[i][s]=Secret(a[i],val[i+1][s]); for(int i=s+2;i<=r;i++) val[s+1][i]=Secret(val[s+1][i-1],a[i]); if(l==r) return; rek(l,s); rek(s+1,r); } void Init(int N, int A[]) { n=N; for(int i=0;i<n;i++) val[i][i]=a[i]=A[i]; rek(0,n-1); } int ans(int l,int r,int lt,int rt) { if(l==r) return a[l]; int s=(l+r)/2; if(lt<=s && rt>s) return Secret(val[lt][s],val[s+1][rt]); if(rt<=s) return ans(l,s,lt,rt); return ans(s+1,r,lt,rt); } int Query(int L, int R) {return ans(0,n-1,L,R);}
#Verdict Execution timeMemoryGrader output
Fetching results...