Pagini recente » Cod sursa (job #2370695) | Cod sursa (job #1185081) | Cod sursa (job #2879451) | Cod sursa (job #2821401) | Cod sursa (job #938241)
Cod sursa(job #938241)
#include <fstream>
#include <algorithm>
#define minim(a,b) (a<b?a:b)
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
long long n,k,a[100011];
inline bool ver(int m){
register long long s=0,x,i;
for(i=1;i<=n;i++){
x=minim(m,a[i]);
s+=x;
}
if(s>=m*k)
return true;
return false;
}
int main(void){
register long long i,u=0,p=1,m;
f>>k>>n;
for(i=1;i<=n;i++)
f>>a[i],u+=a[i];
u/=k;
long long sol=-1;
while(p<=u){
m=p+(u-p)/2;
if(ver(m)){
sol=m;
p=m+1;
}
else{
u=m-1;
}
}
g<<sol;
return 0;
}