Pagini recente » Cod sursa (job #1032586) | Cod sursa (job #1513205) | Cod sursa (job #864708) | Cod sursa (job #457432) | Cod sursa (job #316320)
Cod sursa(job #316320)
#include<cstdio>
using namespace std;
#define IN "grupuri.in","r",stdin
#define OUT "grupuri.out","w",stdout
#define ll long long
int N , K ;
int A[100020];
bool ok = false;
int verifica(ll x)
{
ll sum = 0;
for(int i = 1 ; i <= N ; ++i)
if(A[i] > x) sum += x;
else sum += A[i];
if(sum >= x * K) return 1;
else return 0;
}
int main()
{
freopen(IN);
freopen(OUT);
scanf("%d%d",&K,&N);
for(int i = 1 ; i <= N ; ++i) scanf("%d",&A[i]);
ll st = 1 , m , dr = 100000000000LL, sol;
while(st <= dr)
{
m = (st + dr) / 2;
if(verifica(m) == 1) { sol = m; st = m + 1; }
else dr = m - 1;
}
printf("%lld\n",sol);
return 0;
}