Submission #1291534

#TimeUsernameProblemLanguageResultExecution timeMemory
1291534ereringSecret (JOI14_secret)C++20
0 / 100
636 ms589824 KiB
#include <bits/stdc++.h> #include "secret.h" using namespace std; map<pair<int,int>,int> mp; int a[1001]; void solve(int l,int r){ if(l==r)return; int mid=(l+r)/2; for(int i=mid-1;i>=l;i--){ mp[{i,mid}]=Secret(a[i],mp[{i+1,mid}]); } for(int i=mid+2;i<=r;i++){ mp[{mid+1,i}]=Secret(a[i],mp[{mid+1,i-1}]); } solve(l,mid-1); solve(mid+1,r); } void Init(int N, int A[]) { for(int i=0;i<N;i++){ a[i]=A[i]; mp[{i,i}]=a[i]; } solve(0,N-1); } int Query(int L, int R) { if(mp[{L,R}])return mp[{L,R}]; for(int i=L;i<R;i++){ if(mp[{L,i}] && mp[{i+1,R}])return Secret(mp[{L,i}],mp[{i+1,R}]); } return -1; }
#Verdict Execution timeMemoryGrader output
Fetching results...