Pagini recente » Cod sursa (job #605318) | Cod sursa (job #1159577) | Cod sursa (job #358166) | Cod sursa (job #2235736) | Cod sursa (job #2291258)
#include <cstdio>
#include <algorithm>
using namespace std;
#define lli long long int
FILE *fin = freopen("grupuri.in", "r",stdin);
FILE *fout = freopen("grupuri.out","w",stdout);
static const int NMAX = 1e5+5;
int n,k;
int v[NMAX];
long long int sumTotal;
long long int logN, pas;
bool Check(int m)
{
lli s = 0;
for(lli i = 1; i <= n; ++i)
s+= min(m,v[i]);
if(s >= m * k)
return true;
return false;
}
int main()
{
scanf("%d%d",&k,&n);
for(int i= 1; i<= n; ++i)
{
scanf("%d",&v[i]);
sumTotal+=v[i];
}
for(logN = 1; logN <= sumTotal/k+1; logN<<=1);
for(;logN; logN >>=1)
{
if((pas + logN)*k <= sumTotal && Check((pas+logN)))
pas+=logN;
}
printf("%lld", pas);
return 0;
}