Pagini recente » Cod sursa (job #1799797) | Cod sursa (job #2044488) | Cod sursa (job #2422056) | Istoria paginii utilizator/petreionut123415341 | Cod sursa (job #1077898)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("grupuri.in");
ofstream g ("grupuri.out");
#define maxn 100001
long long n,k,v[maxn],i,mid,rez,suma;
int check (long long x)
{
long long s=0;
for (i=1;i<=n;i++)
if(v[i]>x)
s+=x;
else
s+=v[i];
if(s>=x*k)
return 0;
return 1;
}
void search_b (long long l, long long r)
{
mid=(l+r)/2;
if (check(mid)==1)
search_b(l,mid-1);
else
if (check(mid+1)==1 && check(mid)==0)
rez=mid;
else
search_b(mid+1,r);
}
int main()
{
f>>k>>n;
for (i=1;i<=n;i++)
{
f>>v[i];
suma+=v[i];
}
search_b(1,suma/k);
g<<rez;
f.close();
g.close();
return 0;
}