Submission
Status:
(-----)
Score: 0
User: NovemNotes
Problemset: Ice cream
Language: cpp
Time: 0.001 second
Submitted On: 2025-04-25 15:46:00
#include "ice_cream.h"
int guess(int n) {
int l = 1, r = n;
int fib[100];
fib[0] = fib[1] = 1;
int idx=2;
while(fib[idx-1]<=n){
fib[idx] = fib[idx-1] + fib[idx-2];
idx++;
}
while(l<r){
int len = r-l+1;
if(len<=3){
int mid = (l+r)/2;
if(ask(l,mid))r = mid;
else l = mid+1;
continue;
}
int fi = idx-1;
while(fib[fi]>len){
fi--;
}
int mid = l+fib[fi]-1;
if(ask(l,mid)){
r = mid;
}else{
l = mid+1;
}
}
return l;
}