Pagini recente » Cod sursa (job #379018) | Cod sursa (job #296191) | Cod sursa (job #3229557) | Cod sursa (job #2818508) | Cod sursa (job #316279)
Cod sursa(job #316279)
#include<cstdio>
using namespace std;
#define IN "grupuri.in","r",stdin
#define OUT "grupuri.out","w",stdout
int N , K ;
int A[100020];
bool ok = false;
int verifica(int x)
{
int sum = 0;
for(int i = 1 ; i <= N ; ++i)
if(A[i] > K) sum += K;
else sum += A[i];
if(sum == x * K) ok = true;
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]);
int st = 1 , dr = 2000000 , m;
while(st <= dr && ok != true)
{
m = (st + dr) / 2;
if(verifica(m) == 1) st = m + 1;
else dr = m - 1;
}
printf("%d\n",m);
return 0;
}