반응형

https://www.acmicpc.net/problem/2512

 

2512번: 예산

첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상

www.acmicpc.net

 

 

#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

+ Recent posts