Pagini recente » Cod sursa (job #1299366) | Cod sursa (job #1419906) | Cod sursa (job #722524) | Cod sursa (job #1545114) | Cod sursa (job #1026397)
#include<stdio.h>
int n,k,v[100000];
int checkpossible(int grupuri)
{
int col=0,elemcol=0;
int i=0;
while(i<n&&col<k)
{
elemcol+=v[i];
if(elemcol>=grupuri)
{
col++;
if(elemcol-v[i]-1>=0)
elemcol=(elemcol-v[i]-1);
else
elemcol=0;
}
i++;
}
if(col==k)
return 1;
else
return 0;
}
int cautbin(int st,int dr)
{
int lastgood,mij;
while(st<dr)
{
mij=(st+dr)/2;
if(checkpossible(mij)==0)
dr=mij-1;
else
{
lastgood=mij;
st=mij+1;
}
}
return lastgood;
}
int main()
{
FILE *fin,*fout;
fin=fopen("grupuri.in","r");
fout=fopen("grupuri.out","w");
fscanf(fin,"%d%d",&k,&n);
int i;
long long s=0;
for(i=0; i<n; i++)
{
fscanf(fin,"%d",&v[i]);
s+=v[i];
}
fprintf(fout,"%d",cautbin(0,s/k+1));
return 0;
}