Pagini recente » Cod sursa (job #1163657) | Cod sursa (job #9807) | Cod sursa (job #1237359) | Cod sursa (job #3078) | Cod sursa (job #1219484)
#include<fstream>
#include<algorithm>
#define NMAX 100010
using namespace std;
long long a[NMAX], aux[NMAX], sum;
int n, k;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
bool cmp(int A, int B)
{
return B<A;
}
void Citeste()
{
int i;
f>>k>>n;
for (i=1; i<=n; ++i)
{
f>>a[n-i+1];
sum+=a[n-i+1];
}
}
bool valid(long long x)
{
int i;
long long s=0;
for (i=1; i<=n; ++i)
if (a[i]<x) s+=a[i];
else s+=x;
if (k*x<=s) return 1;
return 0;
}
void Solve()
{
long long st=1, dr=sum/k, mij, sol=0;
while (st<=dr)
{
mij=(st+dr)/2;
if (valid(mij))
{
sol=mij;
st=mij+1;
}
else dr=mij-1;
}
g<<sol<<"\n";
}
int main()
{
Citeste();
Solve();
f.close();
g.close();
return 0;
}