Submission #1207596

#TimeUsernameProblemLanguageResultExecution timeMemory
1207596ricardsjansonsSecret (JOI14_secret)C++20
30 / 100
391 ms4416 KiB
#include "secret.h" #include <bits/stdc++.h> using namespace std; const int N=1<<10; vector<int>segt(N*2,-1); void upd(int i,int x){ i+=N; segt[i]=x; for(i/=2;i;i/=2){ if(segt[i*2]<0||segt[i*2+1]<0){ break; } segt[i]=Secret(segt[i*2],segt[i*2+1]); } } void Init(int n, int a[]) { for(int i=0;i<n;i++){ upd(i,a[i]); } } int Query(int l, int r) { l+=N; r+=N; vector<int>vl,vr; while(l<=r){ if(l%2==1){ vl.push_back(segt[l++]); } if(r%2==0){ vr.push_back(segt[r--]); } l/=2; r/=2; } vector<int>v; for(int x:vl){ v.push_back(x); } reverse(vr.begin(),vr.end()); for(int x:vr){ v.push_back(x); } int res=v.front(); for(int i=1;i<v.size();i++){ res=Secret(res,v[i]); } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...