Pagini recente » Cod sursa (job #1085424) | Cod sursa (job #1044582) | Cod sursa (job #342001) | Cod sursa (job #1991887) | Cod sursa (job #289532)
Cod sursa(job #289532)
#include <cstdio>
#define FIN "grupuri.in"
#define FOUT "grupuri.out"
#define N 100010
int n, k, a[N], s[N], c;
void read()
{
int i;
freopen(FIN, "r", stdin);
scanf("%d%d", &k, &n);
for (i = 1; i <= n; ++i)
{
scanf("%d", &a[i]);
s[i] = s[i - 1] + a[i];
}
}
int calc(int m)
{
int x;
x = s[m - 1] / m + n - m + 1;
if (x < k)
return 1;
if (x == k)
return 0;
return -1;
}
void solve()
{
int p = 1, u = s[n] / k, m, x;
while (p < u)
{
m = (p + u) >> 1;
x = calc(m);
if (x < 1)
{
p = m + 1;
if (x == 0)
c = m;
}
else
{
u = m;
}
}
if (!calc(p) && p > c)
c = p;
}
void write()
{
freopen(FOUT, "w", stdout);
printf("%d\n", c);
}
int main()
{
read();
solve();
write();
}