반응형
https://www.acmicpc.net/problem/2512
#include <iostream>
#include <algorithm>
int n, arr[10000], m, l = 0, r;
int main() {
scanf("%d", &n);
for (int i = 0; i < n && scanf("%d", &arr[i]); i++)
r = std::max(r, arr[i]);
scanf("%d", &m);
while (l <= r) {
int mid = (l + r) / 2, sum = 0;
for (int i = 0; i < n; i++) {
if (mid >= arr[i]) sum += arr[i];
else sum += mid;
}
if (sum <= m) l = mid + 1;
else r = mid - 1;
}
printf("%d", r);
}
반응형
'Algorithm' 카테고리의 다른 글
백준 1365 : 꼬인 전깃줄 (0) | 2021.11.14 |
---|---|
백준 8983 : 사냥꾼 (0) | 2021.11.14 |
백준 11000 : 강의실 배정 (0) | 2021.11.14 |
백준 3109 : 빵집 (0) | 2021.11.14 |
백준 10996 : 별 찍기 - 21 (0) | 2021.11.14 |