백준 풀이 C++

백준 16401 c++ (이분탐색)

ag2개발자 2022. 9. 27. 08:59
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
using namespace std;
#define ll long long



int main() {
	cin.tie(0)->sync_with_stdio(0);
	
	int n, m;
	cin >> n >> m;
	vector<int> v;
	int Max = 0;
	for (int i = 0,x; i < m; i++) {
		cin >> x;
		v.push_back(x);
		Max = max(Max, x);
	}
	int left = 1;
	int right = Max;
	int ans = 0;
	sort(v.rbegin(), v.rend());
	while (left <= right) {
		int cnt = 0;
		int mid = (left + right) / 2;
		for (int i = 0; i < m; i++) {
			cnt += v[i] / mid;
		}
		if (cnt < n) {
			right = mid - 1;
		}
		else{
			ans = mid;
			left = mid + 1;
		}
	}
	cout << ans;
	return 0;
}

'백준 풀이 C++' 카테고리의 다른 글

백준 2580 c++ 백트레킹  (0) 2022.09.27
백준 1920 c++ (이분탐색 기초)  (0) 2022.09.27
백준 1072 C++(이분탐색)  (0) 2022.09.27
백준 1072 c++ 이분탐색  (0) 2022.09.27
백준 2805 C++ (이분탐색)  (0) 2022.09.24