답안 #763366

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
763366 2023-06-22T08:37:00 Z boris_mihov 쌀 창고 (IOI11_ricehub) C++17
100 / 100
11 ms 2900 KB
#include "ricehub.h"
#include <algorithm>
#include <iostream>
#include <numeric>
#include <cassert>
#include <vector>

typedef long long llong;
const int MAXN = 100000 + 10;
const int INF  = 1e9;

int n;
llong b;
int a[MAXN];
llong prefix[MAXN];

bool check(int needed)
{
    for (int i = 1 ; i + needed - 1 <= n ; ++i)
    {
        llong currCost = 0;
        int med = (i + i + needed - 1) / 2;
        currCost += 1LL * (med - i + 1) * a[med] - (prefix[med] - prefix[i - 1]);
        currCost += (prefix[i + needed - 1] - prefix[med]) - 1LL * (i + needed - 1 - med) * a[med];
        if (currCost <= b) return true;
    }

    return false;
}

int besthub(int N, int L, int X[], long long B)
{
    n = N;
    for (int i = 0 ; i < n ; ++i)
    {
        a[i + 1] = X[i];
        prefix[i + 1] = prefix[i] + X[i];
    }

    b = B;
    int l = 0, r = n + 1, mid;
    while (l < r - 1)
    {
        mid = (l + r) / 2;
        if (check(mid)) l = mid;
        else r = mid;
    }

    return l;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 256 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 308 KB Output is correct
3 Correct 1 ms 308 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 0 ms 312 KB Output is correct
9 Correct 1 ms 312 KB Output is correct
10 Correct 0 ms 212 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 1 ms 308 KB Output is correct
13 Correct 1 ms 316 KB Output is correct
14 Correct 1 ms 308 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 212 KB Output is correct
17 Correct 1 ms 212 KB Output is correct
18 Correct 1 ms 212 KB Output is correct
19 Correct 1 ms 316 KB Output is correct
20 Correct 1 ms 212 KB Output is correct
21 Correct 0 ms 212 KB Output is correct
22 Correct 1 ms 312 KB Output is correct
23 Correct 0 ms 212 KB Output is correct
24 Correct 1 ms 312 KB Output is correct
25 Correct 1 ms 212 KB Output is correct
26 Correct 0 ms 212 KB Output is correct
27 Correct 1 ms 308 KB Output is correct
28 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 316 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 340 KB Output is correct
12 Correct 1 ms 340 KB Output is correct
13 Correct 1 ms 340 KB Output is correct
14 Correct 1 ms 340 KB Output is correct
15 Correct 1 ms 212 KB Output is correct
16 Correct 1 ms 312 KB Output is correct
17 Correct 1 ms 340 KB Output is correct
18 Correct 1 ms 340 KB Output is correct
19 Correct 1 ms 340 KB Output is correct
20 Correct 0 ms 340 KB Output is correct
21 Correct 1 ms 324 KB Output is correct
22 Correct 1 ms 340 KB Output is correct
23 Correct 1 ms 324 KB Output is correct
24 Correct 1 ms 324 KB Output is correct
25 Correct 1 ms 340 KB Output is correct
26 Correct 1 ms 340 KB Output is correct
27 Correct 1 ms 340 KB Output is correct
28 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 724 KB Output is correct
2 Correct 4 ms 724 KB Output is correct
3 Correct 9 ms 2832 KB Output is correct
4 Correct 9 ms 2856 KB Output is correct
5 Correct 5 ms 1364 KB Output is correct
6 Correct 8 ms 1352 KB Output is correct
7 Correct 8 ms 2644 KB Output is correct
8 Correct 11 ms 2628 KB Output is correct
9 Correct 6 ms 1376 KB Output is correct
10 Correct 5 ms 1384 KB Output is correct
11 Correct 11 ms 2884 KB Output is correct
12 Correct 9 ms 2900 KB Output is correct
13 Correct 5 ms 1480 KB Output is correct
14 Correct 5 ms 1492 KB Output is correct
15 Correct 7 ms 2260 KB Output is correct
16 Correct 7 ms 2224 KB Output is correct
17 Correct 8 ms 2576 KB Output is correct
18 Correct 8 ms 2644 KB Output is correct
19 Correct 9 ms 2900 KB Output is correct
20 Correct 10 ms 2772 KB Output is correct