본문 바로가기

카테고리 없음

백준 1654

#pragma warning(disable:6385)
#include <algorithm>
#include <iostream>

using namespace std;

int num;
int set;
long long arr[10001];

int main() {


	cin.tie(0);
	ios_base::sync_with_stdio(false);

	cin >> num;

	cin >> set;

	for (int i = 0; i < num; i++) {
	
		cin >> arr[i];
	}
	
	sort(arr, arr + num);

	long long begin = 0; long long end = arr[num - 1];

	long long mid ;

	long long cnt=0;

	long long res=0;

	while (begin <= end) {
		cnt = 0;
		mid = (begin + end) / 2;

		for (int i = 0; i < num; i++) {

			if (mid == 0) {
				cnt += arr[i]; 
				continue;
			}
			cnt += arr[i] / mid;

		
		}
	
		if (cnt < set) {
		
			
			end = mid - 1;
		}

		else {
			if (res < mid) {
				res = mid;
			}
			begin = mid + 1;
			
			
		
		}
	
	}

	cout << res ;

}