NC23049 华华给月月准备礼物
华华给月月准备礼物
https://ac.nowcoder.com/acm/problem/23049
题目描述
略。
题解
二分长度即可。
#include <bits/stdc++.h>
#define INF 2000000000
using namespace std;
typedef long long ll;
int read(){
int f = 1, x = 0;
char c = getchar();
while(c < '0' || c > '9'){if(c == '-') f = -f; c = getchar();}
while(c >= '0' && c <= '9')x = x * 10 + c - '0', c = getchar();
return f * x;
}
int n, m;
int a[200005];
void init(){
n = read(), m = read();
for (int i = 1; i <= n; ++i)
a[i] = read();
}
void solve(){
int l = 0, r = 1000000000;
while (r > l){
int mid = (l + r + 1) >> 1;
ll cnt = 0;
for (int i = 1; i <= n; ++i)
cnt += a[i] / mid;
if (cnt >= m) l = mid;
else r = mid - 1;
}
printf("%d\n", l);
}
int main(){
init();
solve();
return 0;
} 