Submission #881485

#TimeUsernameProblemLanguageResultExecution timeMemory
881485smartmonkySecret (JOI14_secret)C++14
0 / 100
386 ms8372 KiB
#include "secret.h" #include <bits/stdc++.h> #define ff first #define ss second #define pb push_back #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() using namespace std; int b[1005]; int t[1005][1005]; int cnt = 0; int N; void build(int l = 0, int r = N - 1){ if(l > r)return; if(l == r){ t[l][r] = b[l]; return; } int mid = (l + r) >> 1; t[mid][mid] = b[mid]; for(int i = mid - 1; i >= l; i--){ t[i][mid] = Secret(b[i], t[i + 1][mid]); } for(int i = mid + 1; i <= r; i++){ t[mid][i] = Secret(b[i], t[i - 1][mid]); } build(l, mid); build(mid + 1, r); } int get(int al, int ar, int l = 0, int r = N - 1){ if(al > r || ar < l)return 0; int mid = (l + r) >> 1; if(l == r) return b[l]; if(l >= al && ar <= r) return Secret(t[l][mid], t[mid + 1][r]); else{ return get(al, ar, l, mid) + get(al, ar, mid + 1, r); } } int Query(int l, int r){ return get(l, r); } void Init(int n, int a[]) { N = n; for(int i=0;i<n;i++)b[i]=a[i]; build(); }
#Verdict Execution timeMemoryGrader output
Fetching results...