Cod sursa(job #968069)

Utilizator thewildnathNathan Wildenberg thewildnath Data 1 iulie 2013 15:14:38
Problema Grupuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
int n,k;
long long v[100002],s;

int bun(long long x)
{
    long long a,b=0;
    int i;
    a=x*k;
    for(i=1;i<=n;++i)
        b+=min(v[i],x);
    if(b>=a)
        return 1;
    return 0;
}

void caut()
{
    long long s,d,m,l;
    s=1;d=s/k;
    while(s<=d)
    {
        m=(s+d)/2;
        if(bun(m))
        {
            l=m;
            s=m+1;
        }
        else
            d=m-1;
    }
    printf("%d\n",l);
}

int main()
{
    freopen("grupuri.in","r",stdin);
    freopen("grupuri.out","w",stdout);
    int i;
    scanf("%d%d",&n,&k);
    for(i=1;i<=n;++i)
    {
        scanf("%d",&v[i]);
        s+=v[i];
    }

    caut();

    return 0;
}