Submission #799618

#TimeUsernameProblemLanguageResultExecution timeMemory
799618Liudas쌀 창고 (IOI11_ricehub)C++17
100 / 100
13 ms4248 KiB
#include <bits/stdc++.h>
#include "ricehub.h"
using namespace std;
int besthub(int N, int L, int arr[], long long B){
    vector<long long> brr;
    for(int i = 0; i < N; i ++){
        brr.push_back(arr[i]);
    }
    long long ss = 0, ee = 1e9;
    vector <long long> suf(N + 1), pref(N + 1);
    for(int i = 0; i < N; i ++){
        pref[i+1] = pref[i]+1ll*brr[i];
        suf[N-i-1] = 1ll * suf[N-i]+brr[N-i-1] ;
    }
    int l = 1, r = N + 1;
    while(l + 1 < r){
        int mid = (l + r + 1) / 2;
        int best = 0;
        //cout << "start " << mid << endl;
        for(int i = 0; i < N - mid + 1; i ++){
            long long t = i + mid/ 2, tt = arr[t];
            long long s = suf[i] - suf[t];
            long long p = pref[i + mid] - pref[t];
            long long price = tt * (t - i) - s + p - tt * (i + mid - t);
            if(price <= B){
                best = mid;
                break;
            }
        }
        //cout <<"ans " << best <<  " " << mid << endl;
        if(best == mid){
            l = mid;
        }
        else{
            r = mid;
        }
    }
    return l;
}

Compilation message (stderr)

ricehub.cpp: In function 'int besthub(int, int, int*, long long int)':
ricehub.cpp:9:15: warning: unused variable 'ss' [-Wunused-variable]
    9 |     long long ss = 0, ee = 1e9;
      |               ^~
ricehub.cpp:9:23: warning: unused variable 'ee' [-Wunused-variable]
    9 |     long long ss = 0, ee = 1e9;
      |                       ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...