Submission

Status:

(-SSSS)

Subtask/Task Score:

{0/100}

Score: 0

User: a0ms1n

Problemset: Ice cream

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-13 12:38:22

#include "ice_cream.h"
#include <bits/stdc++.h>
using namespace std;

int fib[20]={0};

/*
if k<guess -> fib-2 (C+=2)
   k>=guess -> fib-1 (C+=1)
*/

int guess(int n) {
    if(n==1)return 1;
    fib[0] = fib[1] = 1;
    int cur = 0;
    for(int i=2;i<=20;i++){
        fib[i] = fib[i-1]+fib[i-2];
    }
    int l=1,r=n;
    int ans = 1500;
    while(l<r){
        int b = r-l+1;
        int idx = lower_bound(fib,fib+20,b) - fib;
        int mid = l+fib[idx-2]-1;
        //cout<<l<<' '<<r<<' '<<mid<<'\n';
        if(ask(1,mid)){
            ans = mid;
            r = mid;
        }
        else{
            l = mid+1;
        }
    }
    return ans;
}