Cod sursa(job #1501293)

Utilizator Andrei501Clicinschi Andrei Andrei501 Data 13 octombrie 2015 10:51:58
Problema Grupuri Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.95 kb
#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;
}