Cod sursa(job #1590670)

Utilizator LucianTLucian Trepteanu LucianT Data 5 februarie 2016 13:54:54
Problema Grupuri Scor 88
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>
#define maxN 100005
using namespace std;
int n, x, k, v[maxN], i, j;
int st, dr, mij;
long long sum;
bool valid(long long x)
{
    int i;
    long long s = 0;
    for(i = 1; i <= n; i++)
        if(v[i] < x) s += v[i];
    else s += x;
    if(s/k >= x) return true;
    return false;
}
int main()
{
    freopen("grupuri.in", "r", stdin);
    freopen("grupuri.out", "w", stdout);
    scanf("%d %d", &k, &n);
    for(i = 1; i <= n; i++)
        scanf("%d", &v[i]), sum += v[i];
    st=1, dr=sum;
    while(st <= dr)
    {
        mij = (st+dr)/2;
        if(valid(mij)) st = mij+1;
        else dr = mij-1;
    }
    printf("%d", dr);
    return 0;
}