Cod sursa(job #2352683)

Utilizator sandupetrascoPetrasco Sandu sandupetrasco Data 23 februarie 2019 16:28:01
Problema Grupuri Scor 98
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
#define MOD 1000000007
using namespace std;
typedef long long ll;
typedef pair< int , int > PII;

ll n, a[100100], x, y, m, k;
string s;

bool check(int x) {
    ll ans = 0;

    for (int i = 1; i <= n; i++) {
        ans += min(1LL * x, a[i]);
    }

    return ans >= x * m;
}

int main(){
    ifstream cin("grupuri.in");
    ofstream cout("grupuri.out");
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);

    cin >> m >> n;
    for (int i = 1; i <= n; i++) cin >> a[i];

    ll st = 0, dr = 10e17, rs = 0;
    while (st <= dr) {
        ll mid = (st + dr) >> 1;

        if(check(mid)) st = mid + 1, rs = mid;
        else dr = mid - 1;
    }
    
    cout << rs;
	return 0;
}