Pagini recente » Statistici Cazacu Cristian - Gabriel (CristianCazacu) | Rating Cioltan Andrei (andy1207) | Cod sursa (job #352871) | Istoria paginii utilizator/european | Cod sursa (job #71187)
Cod sursa(job #71187)
#include <cstdio>
using namespace std;
#define Nmax 100001
int v[Nmax], N, K;
long long Max;
int bun(long long m);
int main()
{
freopen("grupuri.in","r",stdin);
freopen("grupuri.out","w",stdout);
long long lo,hi,m;
scanf("%d%d",&K,&N);
for (int i=1;i<=N;++i)
{
scanf("%d",&v[i]);
Max += v[i];
}
Max /= K; ++Max;
lo=1; hi=Max+1;
while (lo<=hi)
{
m=(lo+hi)/2;
if (bun(m)==0)
hi=m-1;
else
lo=m+1;
}
printf("%lld\n",hi);
return 0;
}
int bun(long long m)
{
//deci vreau sa fac m grupuri de K animale ... big deal ...
int tmp = 0;
long long poz = 1;
for (int i=1;i<=N;++i)
if (v[i] >= m) ++tmp;
else
{
poz += v[i];
if (poz > m) poz -= m, ++tmp;
}
if (tmp >= K) return 1;
return 0;
}