Pagini recente » Cod sursa (job #2132034) | Cod sursa (job #1624095) | Cod sursa (job #449068) | Cod sursa (job #1683898) | Cod sursa (job #120888)
Cod sursa(job #120888)
#include <stdio.h>
main()
{
FILE* r;
int e;
unsigned long long a[100000],b[100000],k,n,m,d,t,l,i,s=0,x,y;
r=fopen("grupuri.in","r");
fscanf(r,"%lld %lld",&k,&n);
for (i=1;i<=n;i++)
{
fscanf(r,"%lld",&a[i]);
b[i]=a[i];
s+=a[i];
}
fclose(r);
l=s/k;
d=1;
t=l;
do
{
x=(t+d)/2;
for (i=1;i<=n;i++)
a[i]=b[i];
e=0;
m=1;
y=x;
for (i=1;i<=n;i++)
{
if (a[i]>=x)
{
m++;
}
else
{
if (a[i]>=y)
{
a[i]=a[i]-y;
m++;
y=x-a[i];
}
else
y=y-a[i];
}
if (m>k)
{
e=1;
break;
}
}
if (e==1)
d=x+1;
else
t=x-1;
}
while (d<=t);
r=fopen("grupuri.out","w");
fprintf(r,"%lld",x);
fclose(r);
}