Submission

Status:
(%%%P%)

Score: 21

User: NovemNotes

Problemset: Ice cream

Language: cpp

Time: 0.001 second

Submitted On: 2025-04-22 16:39:50

#include "ice_cream.h"

int guess(int n) {
    int l = 1, r = n;
    while (l < r) {
        int len = r - l + 1;
        if (len <= 4) {
            int mid = (l + r) / 2;
            if (ask(l, mid)) r = mid;
            else l = mid + 1;
            continue;
        }
        int step = len / 5;
        int m1 = l + step - 1;
        int m2 = m1 + step;
        int m3 = m2 + step;
        int m4 = m3 + step;
        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 if (ask(m3 + 1, m4)) {
            l = m3 + 1;
            r = m4;
        } else {
            l = m4 + 1;
        }
    }
    return l;
}