diff --git a/day5/perfect/fix.cpp b/day5/perfect/fix.cpp index e9481e8..fcfd0c2 100644 --- a/day5/perfect/fix.cpp +++ b/day5/perfect/fix.cpp @@ -5,24 +5,66 @@ const int MAX_N = 3e5+5; const int MAX_K = 19; int sMin[MAX_N][MAX_K]; int sMax[MAX_N][MAX_K]; -int l[MAX_N]; +int l2[MAX_N]; -int main(){ +#ifndef OITEST +#define PRINT_VALUE(v) +#endif + +int main(int argc,char* argv[]){ + +#ifdef OITEST + #define PRINT_VALUE(v){cout<<#v<<" :"<<(v)<>correctAns; + #define cin inputFile +#endif cin.sync_with_stdio(false); cin.tie(0); - l[1]=0; + l2[0]=0; + l2[1]=0; int n; cin>>n; for(int i=1;i<=n;i++){ cin>>sMin[i][0]; sMax[i][0]=sMin[i][0]; - if(i!=1)l[i]=l[(i>>1)]+1; } - int k=l[n]+1; + for(int i=2;i<=n;i++){ + l2[i]=l2[i/2]+1; + } + int k=l2[n]+1; for(int j=1;j<=k;j++){ for(int i=1;i+(1<