Cod sursa(job #3264139)

Utilizator Radu_BicliBiclineru Radu Radu_Bicli Data 18 decembrie 2024 16:17:00
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
long long k, n, i, sum, dr, st, mij, s;
long long v[1000002];

static inline long long Cb(long long sum) {
    long long st = 1, dr = sum / k;

    long long poz;
    while(st <= dr) {
        long long mij = st + (dr - st) / 2;

        long long sum = 0;
        for(i = 1; i <= n; i++) {
            if(v[i] <= mij) sum += v[i];
            else sum += mij;
        }

        if(sum >= mij * k) {
            poz = mij;
            st = mij + 1;
        }
        else dr = mij - 1;
    }
    return poz;
}

int main() {
    fin >> k >> n;
    for(i = 1; i <= n; i++) {
        fin >> v[i];
        sum += v[i];
    }

    fout << Cb(sum);

    return 0;
}