Cod sursa(job #1311904)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 8 ianuarie 2015 18:40:43
Problema Grupuri Scor 74
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
#include<iostream>
using namespace std;
ifstream in("grupuri.in");
ofstream out("grupuri.out");
const int NMAX = 100000;

int v[NMAX + 10],n,k,s;

void read()
{

    in>>k>>n;
    for(int i = 1 ; i <= n ; i++){
        in>>v[i];
        s += v[i];
    }
    in.close();
}

int ok(int x)
{

    long long sum = 0;
    for(int i = 1 ; i <= n ; i++)
        sum += min(x,v[i]);
    return x*k <= sum;
}

void solve()
{

    int left = 0,right = s/k + 1,sol = 0;
    while(left <= right){
        int mid = (left + right) >> 1;
        if(ok(mid)){
            sol = mid;
            left = mid + 1;
        }
        else
            right = mid - 1;
    }
    out<<sol;
    out.close();
}

int main()
{

    read();
    solve();
    return 0;
}