Pagini recente » Cod sursa (job #1433036) | Cod sursa (job #2424447) | Cod sursa (job #1361708) | Cod sursa (job #3000314) | Cod sursa (job #1023133)
#include <fstream>
#include <vector>
#include <set>
using namespace std;
ifstream cin("grupuri.in");
ofstream cout("grupuri.out");
const int nmax = int(1e5) + 2;
int N, K;
int a[nmax];
int main()
{
cin>>K>>N;
for(int i = 0;i < N;i++) {
cin>>a[i];
}
auto canGroup = [] (const int &G) {
int sum = 0;
for(int i = 0;i < N;i++) {
sum += min(a[i],G);
}
return sum >= 1ll*K*G;
};
int ans = 0;
for(int step = 1<<30;step > 0;step >>= 1) {
if(canGroup(ans + step)) {
ans += step;
}
}
cout<<ans;
return 0;
}