Pagini recente » Cod sursa (job #2007317) | Cod sursa (job #1674507) | Istoria paginii runda/winners28 | Cod sursa (job #1214820) | Cod sursa (job #2240713)
#include <bits/stdc++.h>
using namespace std;
int n, k;
int a[100005];
int main()
{
freopen("grupuri.in", "r", stdin);
freopen("grupuri.out", "w", stdout);
scanf("%d%d", &k, &n);
for(int i = 1; i <= n ; ++i) scanf("%d", &a[i]);
sort(a + 1, a + n + 1);
int st = 1, dr = 1000001;
while(st <= dr){
int mij = (st + dr) / 2;
int s = 0, nr = 0;
for(int i = n; i >= 1 ; --i){
s = s + min(a[i], mij);
if(s >= mij) s = s - mij, ++nr;
}
if(nr >= k) st = mij + 1;
else dr = mij - 1;
}
printf("%d", dr);
return 0;
}