# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
428427 | 2021-06-15T11:42:51 Z | kshitij_sodani | Shortcut (IOI16_shortcut) | C++14 | 0 ms | 204 KB |
#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<i){ if(pre[i]+pre[ind]<ma){ ind++; } else{ break; } } while(ind3<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; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 204 KB | n = 4, incorrect answer: jury 80 vs contestant 100 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 204 KB | n = 4, incorrect answer: jury 80 vs contestant 100 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 204 KB | n = 4, incorrect answer: jury 80 vs contestant 100 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 204 KB | n = 4, incorrect answer: jury 80 vs contestant 100 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 204 KB | n = 4, incorrect answer: jury 80 vs contestant 100 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 204 KB | n = 4, incorrect answer: jury 80 vs contestant 100 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 204 KB | n = 4, incorrect answer: jury 80 vs contestant 100 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 204 KB | n = 4, incorrect answer: jury 80 vs contestant 100 |
2 | Halted | 0 ms | 0 KB | - |