Cod sursa(job #1501281)

Utilizator Andrei501Clicinschi Andrei Andrei501 Data 13 octombrie 2015 10:35:19
Problema Grupuri Scor 36
Compilator c Status done
Runda Arhiva de probleme Marime 0.9 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");

    int N,K;
    fscanf (fin,"%d",&K);
    fscanf (fin,"%d",&N);

    int S=0;
    int i;

    for (i=1; i<=N; i++)
    {
        fscanf (fin,"%d",&v[i]);
        S+=v[i];
    }

    int inf=1;
    int sup=S/K;

    int x,SS;

    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;
        }
        else if (SS<=K*x)
        {
            sup=x-1;
        }
    }

    fprintf (fout,"%d",inf);

    fclose (fin);
    fclose (fout);
    return 0;
}