Pagini recente » Cod sursa (job #262716) | Cod sursa (job #670399) | Cod sursa (job #791281) | Cod sursa (job #1976654) | Cod sursa (job #1311904)
#include<fstream>
#include<iostream>
using namespace std;
ifstream in("grupuri.in");
ofstream out("grupuri.out");
const int NMAX = 100000;
int v[NMAX + 10],n,k,s;
void read()
{
in>>k>>n;
for(int i = 1 ; i <= n ; i++){
in>>v[i];
s += v[i];
}
in.close();
}
int ok(int x)
{
long long sum = 0;
for(int i = 1 ; i <= n ; i++)
sum += min(x,v[i]);
return x*k <= sum;
}
void solve()
{
int left = 0,right = s/k + 1,sol = 0;
while(left <= right){
int mid = (left + right) >> 1;
if(ok(mid)){
sol = mid;
left = mid + 1;
}
else
right = mid - 1;
}
out<<sol;
out.close();
}
int main()
{
read();
solve();
return 0;
}