Pagini recente » Cod sursa (job #873664) | Cod sursa (job #1628040) | Cod sursa (job #2826564) | Cod sursa (job #484328) | Cod sursa (job #373706)
Cod sursa(job #373706)
#include <stdio.h>
#define Nmax 100002
int A[Nmax];
int n, k, i, p, u, mid, sol;
long long P, S;
int verif(int X) {
int i;
for (i = 1, P = 0; i <= n; i++) {
if (A[i] <= X)
P += A[i];
else
P += X;
if (P >= X * k) {
sol = X;
return 1;
}
}
return 0;
}
int main() {
FILE *f = fopen("grupuri.in", "r");
FILE *g = fopen("grupuri.out", "w");
fscanf(f, "%d %d", &k, &n);
for (i = 1; i <= n; i++) {
fscanf(f, "%d", &A[i]);
S += A[i];
}
p = 0, u = S / k;
while (p <= u) {
mid = (u - p) / 2 + p;
if (verif(mid))
p = mid + 1;
else
u = mid - 1;
}
fprintf(g, "%d", sol);
fclose(f);
fclose(g);
return 0;
}