Pagini recente » Cod sursa (job #2579626) | Cod sursa (job #1407688) | Cod sursa (job #1966335) | Borderou de evaluare (job #1569441) | Cod sursa (job #3031111)
#include <fstream>
#include <math.h>
using namespace std;
ifstream cin("grupuri.in");
ofstream cout("grupuri.out");
long long int mid,n,s,k,l,r,v[100005],sol;
bool check(long long mid){
long long sum=0;
for (int i = 0; i < n; i++)
{
sum+=min(v[i],mid);
//cout<<i<<" "<<v[i]<<" "<<mid<<" "<<sum<<" "<<k<<'\n';
}
if(sum>=mid*k) return 1;
return 0;
}
int main(){
cin>>k>>n;
for (int i = 0; i < n; i++)
{
cin>>v[i];
}
r=pow(10,11);
l=0;
while(l<=r){
mid=(l+r)/2;
//cout<<mid<<" "<<check(mid)<<'\n';
if(check(mid)){
sol=mid;
l=mid+1;
}else{
r=mid-1;
}
}
cout<<sol;
}