#include <bits/stdc++.h>
using
namespace
std;
bool
check(
int
K,
int
n,
int
m,
vector<
int
> arr,
int
good_share)
{
int
candies = n, taken = 0;
while
(candies > 0) {
taken += min(K, candies);
candies -= min(K, candies);
for
(
int
j = 0; j < m; j++) {
int
consume = (arr[j] * candies) / 100;
candies -= consume;
}
}
return
(taken >= good_share);
}
void
minimumK(vector<
int
> &arr,
int
N,
int
M)
{
int
good_share =
ceil
((N * 1.0)
/ ((M + 1) * 1.0));
int
lo = 1, hi = N;
while
(lo < hi) {
int
mid = (lo + hi) / 2;
if
(check(mid, N, M, arr,
good_share)) {
hi = mid;
}
else
{
lo = mid + 1;
}
}
cout << hi;
}
int
main()
{
int
N = 13, M = 1;
vector<
int
> arr = { 50 };
minimumK(arr, N, M);
return
0;
}
Original page link
Best Cool Tech Gadgets
Top favorite technology gadgets
0 comments:
Post a Comment