#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 |