본문 바로가기
Algorithm

BOJ 2512: 예산

by Edward Agape Kim 2023. 11. 9.
#include <iostream>
#include <algorithm>

using namespace std;

int n, m;
int inp[10100];
int sum, s, e, mid;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	
	cin >> n;
	for(int i=1; i<=n; i++){
		cin >> inp[i];
	}
	sort(inp, inp+n+1);
	cin >> m;
	e = inp[n];
	
	while(s<=e){
		mid = (s+e)/2;
		sum = 0;
		
		for(int i=1; i<=n; i++){
			if(inp[i]<=mid) sum += inp[i];
			else sum += mid;
		}
		if(sum <= m){
			s = mid+1;
		}
		else{
			e=mid-1;
		}
	}
	cout << e;
	
	return 0;
}

'Algorithm' 카테고리의 다른 글

BOJ 1300: k번째 수  (0) 2023.11.09
Codeup 1430: 기억력 테스트 2  (0) 2023.11.09
Codeup 3006: 완전 제곱수 찾기  (0) 2023.11.09
Edmonds-Karp  (2) 2023.08.29
memoization 기법을 이용한 피보나치 수열  (0) 2023.06.26