2512번

seuls2·2023년 3월 13일
0

BOJ

목록 보기
14/55

2512

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int getSum(vector<int> v, int num) {
	int sum = 0;
	for (int i = 0; i < v.size(); i++) {
		sum += min(v[i], num);
	}
	return sum;
}

int main() {
	int n, m;
	vector<int> v;
	cin >> n;

	int maxnum = 0;
	for (int i = 0; i < n; i++) {
		int input;
		cin >> input;
		v.push_back(input);
		maxnum = max(maxnum, input);
	}

	cin >> m;

	int start = 1;
	int end = maxnum;
	int mid = (start + end) / 2;


	int answer = 0;
	while (start <= end) {
		int sum = getSum(v, mid);
		if (sum > m) {
			end = mid - 1;
			mid = (start + end) / 2;
		}
		else {
			if (answer <= sum) {
				answer = mid;
			}
			start = mid + 1;
			mid = (start + end) / 2;
		}
	}
	cout << answer;
}
profile
공부 기록용 ( ᵕ·̮ᵕ )♩

0개의 댓글