Cod sursa(job #80045)

Utilizator FlorianFlorian Marcu Florian Data 25 august 2007 17:40:58
Problema Grupuri Scor 64
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<stdio.h>
FILE*f=fopen("grupuri.in","r");
FILE*g=fopen("grupuri.out","w");
long a[1019],n,k,x,s;
void read()
        {
        int i;
        fscanf(f,"%d %d",&k,&n);
        for(i=1;i<=n;++i) fscanf(f,"%ld",&a[i]),s+=a[i];
        }
long se_poate(long x)
        {
        long s=0,i;
        //matrice de x*k;

        for(i=1;i<=n;++i)
                {
                if(a[i]<=x)    s+=a[i];
                else s+=x;
                }
        if(s>=x*k) return 0;
        else return 1;
        }
long binary_search()
        {
        long m,i,j,ok,max=0;
        i=1;
        j=s/k;
        while(i<=j)
                {
                m=(i+j)/2;
                ok=se_poate(m);
                if(ok==0)
                        {
                        if(m>max) max=m;
                        i=m+1;
                        }
                else j=m-1;
                }
         return max;
        }
int main()
        {
        read();
        long m;
        m=binary_search();
        fprintf(g,"%ld",m);
        return 0;
        }