Pagini recente » Cod sursa (job #996546) | Cod sursa (job #2221758) | Cod sursa (job #936153) | Cod sursa (job #2309769) | Cod sursa (job #2073771)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
int n, i, j, k, s, t, v[100005];
int st, dr, mid, rez, g;
int main () {
fin >> k >> n;
for (i = 1; i <= n; i++)
{
fin >> v[i];
s += v[i];
}
st = 1; dr = s/k;
while (st <= dr)
{
mid = st+(dr-st)/2;
s = 0;
for (i = 1; i <= n; i++)
{
if (v[i] < mid) s += v[i];
else s += mid;
}
if (s >= mid*k) st = mid+1;
if (s < mid*k) dr = mid-1;
}
s = 0;
st = mid+1;
for (i = 1; i <= n; i++)
{
if (v[i] < st) s += v[i];
else s += st;
}
if (s >= st*k) mid++;
s = 0;
for (i = 1; i <= n; i++)
{
if (v[i] < mid) s += v[i];
else s += mid;
}
if (s < mid*k) mid--;
fout << mid << "\n";
}