Cod sursa(job #265192)

Utilizator ConsstantinTabacu Raul Consstantin Data 23 februarie 2009 15:40:35
Problema Grupuri Scor 36
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
long long  int v[100001],i,k,s,ok,p,u,l,m,n,nr,max,mij;

int cond(long long int x){
long long int i,sum=x*k;
for(i=1;i<=n&&nr<=sum;i++)
        if(v[i]<x)nr+=v[i];
        else
        nr+=x;
        


if(nr>=sum)
        {max=mij;
        return 1;
        }
return 0;
}

int main(){

FILE *f=fopen("grupuri.in","r");
fscanf(f,"%lld%lld",&k,&n);
for(i=1;i<=n;i++)
        {fscanf(f,"%lld",&v[i]);
        s+=v[i];}
fclose(f);

p=1;
u=s/k;

FILE *g=fopen("grupuri.out","w");
while(p<=u)
        {mij=(p+u)>>1;
        ok=cond(mij);
        if(ok)
                p=mij+1;
        else
              u=mij-1;
        }

fprintf(g,"%lld",max);
fclose(g);
return 0;}