728x90
랜선자르기 코드
A가 줄어들수록 B가 늘어나는 그런느낌
int n, m;
int arr[10005];
bool func(long long x) { //길이가 x일때 m개 이상인지
long long cur = 0;
for (int i = 0; i < n; i++) {
cur += arr[i] / x;
}
return cur >= m;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
long long st = 1;
long long en = 0x7fffffff;
while (st < en) {
long long mid = (st + en + 1) / 2;
if (func(mid)) st = mid;
else en = mid - 1;
}
cout << st;
}반응형
댓글