제출 #1291545

#제출 시각아이디문제언어결과실행 시간메모리
1291545erering비밀 (JOI14_secret)C++20
100 / 100
341 ms8328 KiB
#include <bits/stdc++.h> #include "secret.h" using namespace std; int a[1001],mp[1001][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(mp[mid+1][i-1],a[i]); } 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...