제출 #406628

#제출 시각아이디문제언어결과실행 시간메모리
406628ScarletS비밀 (JOI14_secret)C++17
0 / 100
20045 ms8268 KiB
#include <bits/stdc++.h> #include "secret.h" int n, a[1000], pre[1000][1000]; void build(int l, int r) { if (l+1>=r) return; int m=l+(r-l)/2; pre[m][m]=a[m]; pre[m+1][m+1]=a[m]; for (int i=m-1;i>=l;--i) pre[i][m]=Secret(a[i],pre[i+1][m]); for (int i=m+2;i<=r;++i) pre[m+1][i]=Secret(pre[m+1][i-1],a[i]); build(l,m); build(m+1,r); } void Init(int N, int A[]) { n=N; for (int i=0;i<n;++i) a[i]=A[i]; build(1,n); } int Query(int l, int r) { if (l+1<=r) return Secret(a[l],a[r]); int x=0, y=n-1, m; while (1) { m=x+(y-x)/2; if (l<=m&&m<r) return Secret(pre[l][m],pre[m+1][r]); if (m<l&&m<r) x=m+1; else y=m; } }
#Verdict Execution timeMemoryGrader output
Fetching results...