Pagini recente » Cod sursa (job #143782) | Cod sursa (job #21018) | Cod sursa (job #448485) | Cod sursa (job #683644) | Cod sursa (job #1501281)
#include <stdio.h>
#include <stdlib.h>
int v[100001];
int main()
{
FILE *fin,*fout;
fin=fopen ("grupuri.in","r");
fout=fopen ("grupuri.out","w");
int N,K;
fscanf (fin,"%d",&K);
fscanf (fin,"%d",&N);
int S=0;
int i;
for (i=1; i<=N; i++)
{
fscanf (fin,"%d",&v[i]);
S+=v[i];
}
int inf=1;
int sup=S/K;
int x,SS;
while (inf<sup)
{
SS=0;
x=(inf+sup)/2;
for (i=1; i<=N; i++)
{
if (v[i]>=x)
{
SS+=x;
}
else
{
SS+=v[i];
}
}
if (SS>=K*x)
{
inf=x+1;
}
else if (SS<=K*x)
{
sup=x-1;
}
}
fprintf (fout,"%d",inf);
fclose (fin);
fclose (fout);
return 0;
}