Pagini recente » Cod sursa (job #2922850) | Cod sursa (job #3212759) | Istoria paginii utilizator/alex0popa | Cod sursa (job #1683355) | Cod sursa (job #428455)
Cod sursa(job #428455)
#include<stdio.h>
#define Nmax 100000
using namespace std;
int s,n,k,a[Nmax],b[Nmax],ss;
void citire();
int cb(int in,int sf);
int verif(int X);
int main()
{
freopen("grupuri.in","r",stdin);
freopen("grupuri.out","w",stdout);
citire();
if (verif(s/k)) printf("%ld",s/k);
else
{
ss=cb(1,s/k);
printf("%ld",ss);
}
return 0;
}
int verif(int X)
{
int z=0,i=n,sa=k*X;
while (a[i]>=X&&i>n-k)
{
++z;
--i;
}
if (i==n-k) return 1;
if (b[n-z]>=sa-z*X) return 1;
return 0;
}
void citire()
{
int i;
scanf("%ld%ld",&k,&n);
for (i=1;i<=n;++i)
{
scanf("%ld",&a[i]);
s+=a[i];
b[i]=s;
}
}
int cb(int in,int sf)
{
int mij,ok1;//in=1,sf=s/k;
mij=in+(sf-in)/2;
ok1=verif(mij);
if (ok1)
return cb(mij,sf);
return cb(in,mij);
return in;
}