제출 #293192

#제출 시각아이디문제언어결과실행 시간메모리
293192fucking_do_it비밀 (JOI14_secret)C++14
30 / 100
608 ms4672 KiB
#include "secret.h" #include <bits/stdc++.h> #define le node+node #define ri node+node+1 #define mid (l+r)/2 using namespace std; const int inf = 1e3+9; int n,a[inf],tree[inf<<2],cnt = 0; vector<int> tmp; void build(int node,int l,int r){ if(l == r) return void(tree[node] = a[l]); build(le,l,mid); build(ri,mid+1,r); tree[node] = Secret(tree[le],tree[ri]); cnt++; } void query(int node,int l,int r,int x,int y){ if(l>r || r<x || l>y) return ; if(l>=x && r<=y) return void(tmp.push_back(tree[node])); query(le,l,mid,x,y); query(ri,mid+1,r,x,y); } void Init(int N, int A[]) { n = N; for(int i=1;i<=n;i++) a[i] = A[i-1]; build(1,1,n); assert(cnt<=8000); } int Query(int L, int R) { cnt = 0; tmp.clear(); query(1,1,n,L+1,R+1); for(int i=tmp.size()-1;i>0;i--) tmp[i-1] = Secret(tmp[i-1],tmp[i]),cnt++; assert(cnt <= 20); return tmp[0]; }
#Verdict Execution timeMemoryGrader output
Fetching results...