Cod sursa(job #2014289)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 23 august 2017 13:30:16
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

const int MAXN = (int) 1e5;

int v[MAXN + 1];
int n, k;

inline bool check(long long cnt) {
    long long s = 0;
    for(int i = 1; i <= n; i++) {
        if(v[i] <= cnt)
            s += v[i];
        else
            s += cnt;
    }
    return s >= cnt * k;
}


int main() {
    FILE *fi, *fout;
    int i;
    fi = fopen("grupuri.in" ,"r");
    fout = fopen("grupuri.out" ,"w");
    fscanf(fi,"%d %d " ,&k,&n);
    for(i = 1; i <= n; i++)
        fscanf(fi,"%d " ,&v[i]);
    long long rez = 0;
    for(long long pas = 1LL << 37; pas; pas >>= 1)
        if(check(rez + pas) == 1)
           rez += pas;
    fprintf(fout,"%lld" ,rez);
    fclose(fi);
    fclose(fout);
    return 0;
}