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;
}