이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
vector <ll> arr;
ll RO(ll budget, ll idx) {
vector <int> pq;
for (ll x : arr) pq.push_back(abs(x-arr[idx]));
ll paks = 1, suma = 0, lb = idx-1, ub = idx+1;
while (lb >= 0 || ub < n) {
if (lb >= 0 && ub < n && pq[lb] <= pq[ub]) {
if (suma + pq[lb] <= budget) suma += pq[lb], lb--, paks++;
else break;
}
else if (lb >= 0 && ub < n && pq[lb] > pq[ub]) {
if (suma + pq[ub] <= budget) suma += pq[ub], ub++, paks++;
else break;
}
else if (lb >= 0) {
if (suma + pq[lb] <= budget) suma += pq[lb], lb--, paks++;
else break;
}
else if (ub < n) {
if (suma + pq[ub] <= budget) suma += pq[ub], ub++, paks++;
else break;
}
else {}
}
return paks;
}
int besthub(int R, int L, int X[], ll B) {
for (ll i=0; i<R; i++) arr.push_back((ll)X[i]);
n = R;
return max(RO(B, n/2), RO(B, (n-1)/2));
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |