제출 #725945

#제출 시각아이디문제언어결과실행 시간메모리
725945adrilenRice Hub (IOI11_ricehub)C++17
68 / 100
1072 ms2884 KiB
#include "ricehub.h"
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
typedef pair<int, int> pii;



int besthub(int n, int L, int X[], long long b)
{
    vector <ll> fields;
    for (int i = 0; i < n; i++) fields.emplace_back(X[i]);

    ll cur = 0;
    if (n == 1) return 1;
    int output = 0;

    ll p;
    int left, right;
    for (int i = 0; i < n; i++)
    {
        p = fields[i];
        cur = b;
        left = i - 1, right = i + 1;

        while (true)
        {
            if (left < 0 && right == n)
            {
                break;
            } else if (left < 0)
            {   
                if (cur >= fields[right] - p) {
                    cur -= fields[right] - p;
                    right++;
                } else break;
            } else if (right == n)
            {
                if (cur >= p - fields[left]) {
                    cur -= p - fields[left];
                    left--;
                } else break;
            }
            else if (p - fields[left] < fields[right] - p)
            {
                if (cur >= p - fields[left]) {
                    cur -= p - fields[left];
                    left--;
                } else break;
            } else {
                if (cur >= fields[right] - p) {
                    cur -= fields[right] - p;
                    right++;
                } else break;
            }
        }
        output = max(output, right - left - 1);
    }


    return output;
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...