Cod sursa(job #3258768)

Utilizator mariusn01Marius Nicoli mariusn01 Data 23 noiembrie 2024 15:53:12
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>

using namespace std;

int v[100010];
long long k, n, i, g, st, dr;
long long suma, s = 0;

int main () {
    ifstream fin("grupuri.in");
    ofstream fout("grupuri.out");

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

    ///for (g=1;;g++) {
    st = 1; /// g minim
    dr = s; /// g maxim
    while (st <= dr) {
        long long mid = (st + dr) / 2;

        suma = 0;
        for (i=1;i<=n;i++)
            if (v[i] > mid)
                suma += mid;
            else
                suma += v[i];
        if (suma < k*1LL*mid) /// inseamna ca am ales un mid prea mare, raspunsul este nu, deci caut in stanga
            dr = mid-1;
        else
            st = mid+1;
    }

    ///}
    fout<<dr;

    return 0;
}

/**
 G
 1  DA
 2  DA
 3  DA
 4  DA
 5  DA dr
 6  NU st
 7  NU
 8  NU
 9  NU
10  NU
11  NU
12  NU
13  NU
14  NU
**/