Submission

Status:
(%%%P%)

Score: 29

User: NovemNotes

Problemset: Ice cream

Language: cpp

Time: 0.001 second

Submitted On: 2025-04-22 16:37:44

#include "ice_cream.h"

int guess(int n) {
    int l = 1,r = n;
    while(l<r){
        int len = r-l+1;
        int p = len/4;
        if(p==0){
            int mid = (l+r)/2;
            if(ask(l,mid)) r=mid;
            else l=mid+1;
            continue;
        }
        int m1 = l+p-1;
        int m2 = m1+p;
        int m3 = m2+p;
        if(ask(l,m1)){
            r = m1;
        }else if(ask(m1+1,m2)){
            l = m1+1,r=m2;
        }else if(ask(m2+1,m3)){
            l=m2+1,r=m3;
        }else{
            l = m3+1;
        }
    }
    return l;
}