Pagini recente » Cod sursa (job #1510089) | Cod sursa (job #202203) | Profil Br0ken | Cod sursa (job #1139856) | Cod sursa (job #494865)
Cod sursa(job #494865)
#include<cstdio>
#include<iostream>
using namespace std;
const int NMAX = 100005;
int N, K;
int A[NMAX];
long long maxim;
int REZ;
void citire()
{
scanf("%d%d", &K, &N);
for(int i = 1 ; i <= N ; i++)
{
scanf("%d", &A[i]);
maxim += (long long)A[i];
}
maxim /= K;
}
bool ok(int x)
{
long long total = 0;
for(int i = 1 ; i <= N ; i++)
total += min(A[i], x);
return (total >= (long long)x * K);
}
void caut_bin()
{
int P;
for(P = 1 ; P<<1 <= maxim ; P <<= 1);
for(; P ; P >>= 1)
if(ok(REZ + P))
REZ += P;
}
void scrie()
{
printf("%d\n", REZ);
}
int main()
{
freopen("grupuri.in", "r", stdin);
freopen("grupuri.out", "w", stdout);
citire();
caut_bin();
scrie();
return 0;
}