제출 #77728

#제출 시각아이디문제언어결과실행 시간메모리
77728nxteru비밀 (JOI14_secret)C++14
100 / 100
638 ms9404 KiB
#include <iostream> #include <vector> #include "secret.h" using namespace std; int n,a[1005][1005]; void bt(int l,int r){ int m=(l+r)/2; for(int i=m-1;i>=l;i--){ a[i][m]=Secret(a[i][i],a[i+1][m]); } for(int i=m+2;i<=r;i++){ a[m+1][i]=Secret(a[m+1][i-1],a[i][i]); } if(l+3<=m)bt(l,m); if(m+4<=r)bt(m+1,r); } void Init(int N,int *A){ n=N; for(int i=0;i<n;i++)a[i][i]=A[i]; bt(0,n-1); } int ans(int L,int R,int l,int r){ int m=(l+r)/2; if(R<m)return ans(L,R,l,m); if(m+1<L)return ans(L,R,m+1,r); if(R==m||L==m+1)return a[L][R]; return Secret(a[L][m],a[m+1][R]); } int Query(int l,int r){ return ans(l,r,0,n-1); }
#Verdict Execution timeMemoryGrader output
Fetching results...