Pagini recente » Cod sursa (job #28461) | Cod sursa (job #2403436) | Cod sursa (job #2985533) | Cod sursa (job #355480) | Cod sursa (job #1501293)
#include <stdio.h>
#include <stdlib.h>
int v[100001];
int main()
{
FILE *fin,*fout;
fin=fopen ("grupuri.in","r");
fout=fopen ("grupuri.out","w");
long long N,K;
fscanf (fin,"%lld",&K);
fscanf (fin,"%lld",&N);
long long S=0;
long long i;
for (i=1; i<=N; i++)
{
fscanf (fin,"%d",&v[i]);
S+=v[i];
}
long long inf=1;
long long sup=S/K;
long long x,SS,c;
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;
c=x;
}
else
{
sup=x-1;
}
}
fprintf (fout,"%lld",c);
fclose (fin);
fclose (fout);
return 0;
}