제출 #1188095

#제출 시각아이디문제언어결과실행 시간메모리
1188095petezaSecret (JOI14_secret)C++20
100 / 100
343 ms8336 KiB
#include "secret.h" int AA[1005]; int val[1005][1005]; int n; void rec(int l, int r) { if(l == r) return; int mid = (l+r) >> 1; for(int j=mid+2;j<=r;j++) val[mid+1][j] = Secret(val[mid+1][j-1], AA[j]); for(int j=mid-1;j>=l;j--) val[j][mid] = Secret(AA[j], val[j+1][mid]); rec(l, mid); rec(mid+1, r); } void Init(int N, int A[]) { n = N; for(int i=0;i<N;i++) val[i][i] = AA[i] = A[i]; rec(0, N-1); //Secret(0, 1000000000); } int qr(int l, int r, int tl, int tr) { int mid = (l+r) >> 1; if(tl == mid+1) return val[tl][tr]; if(tr == mid) return val[tl][tr]; if(tr < mid) return qr(l, mid, tl, tr); if(mid+1 < tl) return qr(mid+1, r, tl, tr); return Secret(val[tl][mid], val[mid+1][tr]); } int Query(int L, int R) { if(L == R) return val[L][R]; return qr(0, n-1, L, R); }
#Verdict Execution timeMemoryGrader output
Fetching results...