Submission #1179779

#TimeUsernameProblemLanguageResultExecution timeMemory
1179779paulxaxaSecret (JOI14_secret)C++17
0 / 100
20091 ms8340 KiB
#include <bits/stdc++.h> #include "secret.h" #define NMAX 1000 #define LOG 9 #define ll long long int #define BASE 32 #define MOD 998244353 using namespace std; ifstream fin("cod.in"); ofstream fout("cod.out"); int pref[NMAX+1][NMAX+1]; int n; void divide(int st,int dr,int A[]) { int m = (st+dr)/2; pref[m][m] = A[m]; for(int i=m-1;i>=st;i--) { pref[i][m] = Secret(A[i],pref[i+1][m]); } for(int i=m+1;i<=dr;i++) { pref[m][i] = Secret(A[i],pref[m][i-1]); } if(st<m) { divide(st,m,A); } if(m+1<dr) { divide(m+1,dr,A); } } void Init(int N,int A[]) { n=N; divide(1,N,A); } int Query(int L,int R) { int st=1; int dr=n; while(st<dr) { int m = (st+dr)/2; if(L<=m && m+1<=R) { return Secret(pref[L][m],pref[m+1][R]); } if(R<=m) { dr=m; } else { st=m; } } return pref[st][st]; } //int main() //{ // // //}
#Verdict Execution timeMemoryGrader output
Fetching results...