#include "ricehub.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
int INF=1000000000000000007;
int cost;
vector<int> rice;
vector<int> pref = {0};
bool test(int n) {
//returns true if it's possible to solve with n fields, else false
int mincost=INF;
int len=rice.size();
int fl=(n-1)/2;
int ce=(n)/2;
for (int spos=fl; spos+ce<len; spos++) {
//put at rice[spos]
int cost1 = fl*rice[spos] - (pref[spos] - pref[spos-fl]);
int cost2 = (pref[spos+ce+1] - pref[spos+1]) - ce*rice[spos];
int totcost = cost1+cost2;
mincost=min(mincost,totcost);
//cout << n <<" " << spos <<" " << cost1 << " " <<cost2 <<" " << totcost << endl;
}
return mincost<=cost;
}
int32_t besthub(int32_t R, int32_t L, int32_t X[], long long B) {
cost=B;
for (int i=0; i<R; i++) {
rice.push_back(X[i]);
pref.push_back(pref.back()+X[i]);
}
int lef=1;
int ri=R;
while (lef<ri) {
int m=(lef+ri)/2;
if (test(m)) {
lef=m+1;
ri=ri;
}
else {
lef=lef;
ri=m;
}
}
if (!test(lef)) {
lef--;
}
return lef;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
1 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
344 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
0 ms |
348 KB |
Output is correct |
5 |
Correct |
0 ms |
348 KB |
Output is correct |
6 |
Correct |
0 ms |
344 KB |
Output is correct |
7 |
Correct |
0 ms |
348 KB |
Output is correct |
8 |
Correct |
0 ms |
348 KB |
Output is correct |
9 |
Correct |
0 ms |
444 KB |
Output is correct |
10 |
Correct |
1 ms |
348 KB |
Output is correct |
11 |
Correct |
0 ms |
348 KB |
Output is correct |
12 |
Correct |
1 ms |
348 KB |
Output is correct |
13 |
Correct |
0 ms |
348 KB |
Output is correct |
14 |
Correct |
0 ms |
348 KB |
Output is correct |
15 |
Correct |
1 ms |
344 KB |
Output is correct |
16 |
Correct |
0 ms |
348 KB |
Output is correct |
17 |
Correct |
1 ms |
344 KB |
Output is correct |
18 |
Correct |
0 ms |
348 KB |
Output is correct |
19 |
Correct |
1 ms |
344 KB |
Output is correct |
20 |
Correct |
0 ms |
600 KB |
Output is correct |
21 |
Correct |
0 ms |
348 KB |
Output is correct |
22 |
Correct |
0 ms |
348 KB |
Output is correct |
23 |
Correct |
0 ms |
348 KB |
Output is correct |
24 |
Correct |
0 ms |
348 KB |
Output is correct |
25 |
Correct |
0 ms |
348 KB |
Output is correct |
26 |
Correct |
0 ms |
348 KB |
Output is correct |
27 |
Correct |
1 ms |
348 KB |
Output is correct |
28 |
Correct |
0 ms |
348 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
344 KB |
Output is correct |
2 |
Correct |
0 ms |
548 KB |
Output is correct |
3 |
Correct |
0 ms |
348 KB |
Output is correct |
4 |
Correct |
1 ms |
756 KB |
Output is correct |
5 |
Correct |
1 ms |
348 KB |
Output is correct |
6 |
Correct |
0 ms |
348 KB |
Output is correct |
7 |
Correct |
0 ms |
452 KB |
Output is correct |
8 |
Correct |
1 ms |
348 KB |
Output is correct |
9 |
Correct |
1 ms |
348 KB |
Output is correct |
10 |
Correct |
0 ms |
348 KB |
Output is correct |
11 |
Correct |
1 ms |
348 KB |
Output is correct |
12 |
Correct |
1 ms |
476 KB |
Output is correct |
13 |
Correct |
1 ms |
348 KB |
Output is correct |
14 |
Correct |
1 ms |
348 KB |
Output is correct |
15 |
Correct |
1 ms |
348 KB |
Output is correct |
16 |
Correct |
1 ms |
348 KB |
Output is correct |
17 |
Correct |
0 ms |
348 KB |
Output is correct |
18 |
Correct |
0 ms |
348 KB |
Output is correct |
19 |
Correct |
1 ms |
348 KB |
Output is correct |
20 |
Correct |
1 ms |
344 KB |
Output is correct |
21 |
Correct |
1 ms |
604 KB |
Output is correct |
22 |
Correct |
1 ms |
604 KB |
Output is correct |
23 |
Correct |
1 ms |
488 KB |
Output is correct |
24 |
Correct |
1 ms |
456 KB |
Output is correct |
25 |
Correct |
1 ms |
604 KB |
Output is correct |
26 |
Correct |
1 ms |
604 KB |
Output is correct |
27 |
Correct |
1 ms |
604 KB |
Output is correct |
28 |
Correct |
1 ms |
604 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
984 KB |
Output is correct |
2 |
Correct |
2 ms |
984 KB |
Output is correct |
3 |
Correct |
11 ms |
4300 KB |
Output is correct |
4 |
Correct |
11 ms |
5324 KB |
Output is correct |
5 |
Correct |
6 ms |
4016 KB |
Output is correct |
6 |
Correct |
7 ms |
3800 KB |
Output is correct |
7 |
Correct |
9 ms |
5072 KB |
Output is correct |
8 |
Correct |
9 ms |
5324 KB |
Output is correct |
9 |
Correct |
7 ms |
3796 KB |
Output is correct |
10 |
Correct |
7 ms |
3800 KB |
Output is correct |
11 |
Correct |
12 ms |
5328 KB |
Output is correct |
12 |
Correct |
10 ms |
5328 KB |
Output is correct |
13 |
Correct |
7 ms |
4208 KB |
Output is correct |
14 |
Correct |
6 ms |
4012 KB |
Output is correct |
15 |
Correct |
8 ms |
5088 KB |
Output is correct |
16 |
Correct |
8 ms |
5072 KB |
Output is correct |
17 |
Correct |
10 ms |
5328 KB |
Output is correct |
18 |
Correct |
9 ms |
5328 KB |
Output is correct |
19 |
Correct |
10 ms |
5328 KB |
Output is correct |
20 |
Correct |
10 ms |
5328 KB |
Output is correct |