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