Submission #546747

#TimeUsernameProblemLanguageResultExecution timeMemory
546747krit3379Secret (JOI14_secret)C++17
100 / 100
449 ms8320 KiB
#include<bits/stdc++.h> using namespace std; #include"secret.h" #define N 1005 int n,dp[N][N]; void sol(int l,int r,int type,int *a){ if(l==r)return void(dp[l][r]=a[l]); int mid=(l+r)/2; sol(l,mid,type,a); sol(mid+1,r,type,a); for(int i=l;i<=mid;i++)if(dp[i][r]==-1)dp[i][r]=Secret(dp[i][mid],dp[mid+1][r]); for(int i=mid+1;i<=r;i++)if(dp[l][i]==-1)dp[l][i]=Secret(dp[l][mid],dp[mid+1][i]); } void Init(int nn, int *a){ n=nn; for(int i=0;i<n;i++)for(int j=0;j<n;j++)dp[i][j]=-1; sol(0,(n-1)/2,1,a); if(n>1)sol((n-1)/2+1,n-1,2,a); } int Query(int ll, int rr){ int l=0,r=n-1; if(ll==rr)return dp[ll][rr]; if(ll<=(n-1)/2&&rr>(n-1)/2)return Secret(dp[ll][(n-1)/2],dp[(n-1)/2+1][rr]); while(l<=r){ int mid=(l+r)/2; if(ll<=mid&&mid<rr)return Secret(dp[ll][mid],dp[mid+1][rr]); if(rr<=mid)r=mid; else l=mid+1; } }

Compilation message (stderr)

secret.cpp: In function 'int Query(int, int)':
secret.cpp:34:1: warning: control reaches end of non-void function [-Wreturn-type]
   34 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...