728x90
https://www.acmicpc.net/problem/2805
문제 설명
문제 풀이
#include<stdio.h>
int tree[1000000];
int main()
{
int i, n, m, low, high, mid, answer = 0;
long long cnt;
scanf("%d%d", &n, &m);
for(i = 0; i < n; i++) {
scanf("%d", &tree[i]);
}
low = 1; high = 1000000000;
while(low <= high) {
mid = (low+high) / 2;
cnt = 0;
for(i = 0; i < n; i++) {
if(tree[i] > mid)
cnt += (tree[i] - mid);
}
if(cnt < m) high = mid - 1;
else if(cnt >= m) {
answer = mid;
low = mid + 1;
}
}
printf("%d", answer);
return 0;
}
'코테 > 백준' 카테고리의 다른 글
[백준] 10799 쇠막대기 - C++ (0) | 2023.07.20 |
---|---|
[백준] 10815 숫자 카드 - C++ (0) | 2023.07.20 |
[백준] 1764 듣보잡 - C++ (0) | 2023.07.19 |
[백준] 10798 세로읽기 - C++ (0) | 2023.07.19 |
[백준] 17608 막대기 - C++ (0) | 2023.07.18 |