Pagini recente » Cod sursa (job #3204055) | Cod sursa (job #473782) | Cod sursa (job #2726229) | Cod sursa (job #1768220) | Cod sursa (job #1249392)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
#define MAX 100005
typedef long long ll;
ll a[MAX], s[MAX];
int n, k;
int ver(int val)
{
ll 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];
}
ll 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";
}