제출 #428426

#제출 시각아이디문제언어결과실행 시간메모리
428426kshitij_sodaniShortcut (IOI16_shortcut)C++14
0 / 100
1 ms204 KiB
#include <bits/stdc++.h> using namespace std; typedef long long llo; #define a first #define b second #define pb push_back #include "shortcut.h" llo pre[1000001]; int n; llo it[1000001]; llo ss; llo ma[2][2]; bool check(llo mid){ llo ma=-1e18; llo ma2=-1e18; llo ma3=-1e18; llo ma4=-1e18; llo st=1; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ /*if(i==1 and j==3){ cout<<pre[j]-pre[i]+it[i]+it[j]<<":"<<endl; }*/ if(pre[j]-pre[i]+it[i]+it[j]>mid){ st=0; ma=max(ma,pre[i]+pre[j]+it[i]+it[j]); ma2=max(ma2,pre[i]-pre[j]+it[i]+it[j]); ma3=max(ma3,-pre[i]-pre[j]+it[i]+it[j]); ma4=max(ma4,-pre[i]+pre[j]+it[i]+it[j]); } } } if(st==1){ return true; } //return false; ma=mid-ma-ss; ma=-ma; ma2=mid-ma2-ss; ma2=-ma2; ma3=mid-ma3-ss; ma4=mid-ma4-ss; //-pre[i]-pre[j]<=ma //pre[i]+pre[j]>=ma //pre[i]+pre[j]<=ma3 //-pre[i]+pre[j]<=ma2 //pre[i]-pre[j]>=ma2 //pre[i]-pre[j]<=ma4 llo ind=0; llo ind3=0; llo ind2=0; llo ind4=0; for(int i=1;i<n;i++){ while(ind+1<i){ if(pre[i]+pre[ind]<ma){ ind++; } else{ break; } } while(ind3+1<i){ if(pre[i]+pre[ind3+1]<=ma3){ ind3++; } else{ break; } } /*while(ind2+1<i){ if(pre[i]-pre[ind2]>ma4){ ind2--; } } if(pre[]) */ for(int j=0;j<i;j++){ //if(pre[i]+pre[j]>=ma){ //if(pre[i]+pre[j]<=ma3){ if(j>=ind and j<=ind3){ if(pre[j]-pre[i]>=ma2){ if(pre[j]-pre[i]<=ma4){ return true; } } } //} //} } } //ma to ma3 range return false; } long long find_shortcut(int nn, std::vector<int> l, std::vector<int> d, int c) { n=nn; pre[0]=0; ss=c; for(int i=1;i<n;i++){ pre[i]=pre[i-1]+l[i-1]; } for(int i=0;i<n;i++){ it[i]=d[i]; } llo low=-1; for(int i=52;i>=0;i--){ if(check(low+(1LL<<i))==false){ low+=(1LL<<i); } } return low+1; }

컴파일 시 표준 에러 (stderr) 메시지

shortcut.cpp: In function 'bool check(llo)':
shortcut.cpp:56:6: warning: unused variable 'ind2' [-Wunused-variable]
   56 |  llo ind2=0;
      |      ^~~~
shortcut.cpp:57:6: warning: unused variable 'ind4' [-Wunused-variable]
   57 |  llo ind4=0;
      |      ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...