Cod sursa(job #66240)

Utilizator vrajalaMihai Viteazu, razboinicu luminii vrajala Data 16 iunie 2007 22:43:10
Problema Grupuri Scor 74
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
#define Nmax 100001

int N,S,K,a[Nmax],Gmax,p,rez,i;

int incearca(int nr)
{
int i,j;
long long s2=0;
for (i=1;i<=N;++i)
    if (a[i]<nr) s2+=a[i];
       else s2+=nr;
if (s2/nr>=K) return 1;
   else return 0;
}

int main()
{
 freopen("grupuri.in","r",stdin);
 scanf("%d %d",&K,&N);
 for (i=1;i<=N;++i)
     {
     scanf("%d",&a[i]);
     S+=a[i];
     }
 fclose(stdin);
 Gmax=S/K;
 p=1;
 while (p<=Gmax)
       p = p << 1;
 p = p >> 1;
 while (p>=1)
       {
       if (incearca(rez+p)) rez+=p;
       p = p >> 1;
       }
 freopen("grupuri.out","w",stdout);
 printf("%d",rez);
 fclose(stdout);
 return 0;
}