Submission
Status:
(x-xxx)
Score: 0
User: Namkhing
Problemset: Ice cream
Language: cpp
Time: 0.005 second
Submitted On: 2025-04-23 16:54:00
#include "ice_cream.h"
#include <bits/stdc++.h>
using namespace std;
const int seed = 1;
const int inf = 1e9;
const int N = 1010;
int n, a[N];
double dp[N];
int guess(int N) {
srand(seed);
n = N;
for (int i = 2; i <= n; i++) dp[i] = inf;
for (int i = 2; i <= n; i++) {
for (int j = 1; j < i; j++) {
double val = (double) (dp[j] - dp[i-j] + 1) * j / i + dp[i-j] + 1;
if (dp[i] > val) dp[i] = val, a[i] = j;
}
}
int l = 1, r = n;
while (l < r) {
int sz = r - l + 1;
int opt = a[sz];
int b = l + opt;
int e = r - opt;
int x = rand() & 1;
if (x) {
bool f = ask(b, r);
if (f) l = b;
else r = b - 1;
}
else {
bool f = ask(l, e);
if (f) r = e;
else l = e + 1;
}
}
return l;
}