Pagini recente » Cod sursa (job #2606941) | Cod sursa (job #2747957) | Cod sursa (job #2128054) | Cod sursa (job #203183) | Cod sursa (job #1249391)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
#define MAX 100005
int a[MAX], s[MAX];
int n, k;
int ver(int val)
{
int i, ck=k;
for(i=n;i>=1;i--)
{
if(a[i]>=val)
ck--;
else
break;
}
ck-=s[i]/val;
return (ck<=0);
}
int main()
{
int i;
fin>>k>>n;
for(i=1;i<=n;i++)
{
fin>>a[i];
s[i]=s[i-1]+a[i];
}
int step;
for(step=1;step<=s[n]/k;step<<=1);
for(i=0;step;step>>=1)
{
if(i+step<=s[n]/k)
{
if(ver(i+step))
i+=step;
}
}
fout << i << "\n";
}