Submission
Status:
(PPPPP)
Score: 100
User: njoop
Problemset: Ice cream
Language: cpp
Time: 0.001 second
Submitted On: 2025-04-21 02:16:47
#include "ice_cream.h"
using namespace std;
int fib[20];
int find_min_fib(int x) {
int t=2;
while(x > fib[t]) {
t++;
}
t -= 2;
return fib[t];
}
int guess(int n) {
fib[0] = 0;
fib[1] = 1;
for(int i=2; i<=19; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
int l=1, r=n;
while(l < r-1) {
int mid = l + find_min_fib(r-l) - 1;
if(ask(1, mid)) {
r = mid;
} else {
l = mid+1;
}
}
if(l == r) return l;
else if(ask(l, l)) return l;
else return r;
}