| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1301564 | wojtaszekliszek | 쌀 창고 (IOI11_ricehub) | C++20 | 1 ms | 1848 KiB |
#include <bits/stdc++.h>
using namespace std;
#define ll long double
vector<ll>cord(100000);
ll sum(int mid){
if(mid%2==0){
ll mini=LLONG_MAX,sum=0;
int med=mid/2;
for(int i=0;i<mid;i++){
ll comp=cord[i]-(cord[med]+cord[med+1])/2;
sum+=(comp<0?comp*-1:comp);
}
int p=mid-1;
while(cord[p]>0){
mini=min(mini,sum);
sum+=-2*cord[med+1]+cord[p-mid+1]+cord[p+1];
med++;
p++;
//cout<<sum<<' '<<mid<<'\n';
}
return mini;
}
ll mini=LLONG_MAX,sum=0;
int med=(mid-1)/2;
for(int i=0;i<mid;i++){
ll comp=cord[i]-cord[med];
sum+=(comp<0?comp*-1:comp);
}
int p=mid-1;
while(cord[p]>0){
mini=min(mini,sum);
sum+=-cord[med]-cord[med+1]+cord[p-mid+1]+cord[p+1];
med++;
p++;
//cout<<sum<<' '<<mid<<'\n';
}
return mini;
}
int besthub(int n, int l, int x[], long long b) {
for(int i=0;i<n;i++){
cord[i]=x[i];
}
int p=1,k=n,mid=(n+1)/2;
while(k>p){
if(sum(mid)>b){
k=mid-1;
}
else{
p=mid;
}
mid=(k+p)/2;
}
cout<<mid;
}
Compilation message (stderr)
| # | 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... | ||||
