Cod sursa(job #1552363)

Utilizator nimicLeoveanu Mihaita Alexandru nimic Data 17 decembrie 2015 20:17:15
Problema Grupuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
using namespace std;
ifstream in("grupuri.in");
ofstream out("grupuri.out");

const int nmax = 100006;
int k, n, x, a[nmax];
long long mj, st, dr;
 
inline bool OK(long long x)
{
    long long nr=0LL;
    for(int i = 1; i<=n; i++)
		if(a[i]<x)
			nr += a[i];
		else nr += x;
 
    if(nr/k>=x)
		return 1;
    return 0;
}

int main()
{
	int player_unu=0;

    in>>k>>n;
	long long sum = 0;
    for(int i = 1; i<=n; i++)
	{
		in>>a[i], sum += a[i];
	}
 
    st = 1;
	dr = sum;
    while(st<=dr)
    {
        mj = (st + dr) / 2;
        if(OK(mj)) 
			st = mj + 1;
        else 
			dr = mj - 1;
    }
 
    out<<dr<<'\n';

    return player_unu;
}