Pagini recente » Cod sursa (job #3228974) | Cod sursa (job #3129095) | Cod sursa (job #697066) | Cod sursa (job #3286324) | Cod sursa (job #3289814)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
const int lim=1e5+10;
int n,i,v[lim],s[lim],k,st,dr,mid,keep;
bool sol(int x,int k)
{
int st=1,dr=n,l=0,mid;
while(st<=dr)
{
mid=(st+dr)/2;
if(v[mid]<x)
{
st=mid+1;
}
else
{
l=mid;
dr=mid-1;
}
}
int par=n;
if(l)
{
k-=(n-l+1);
par=l-1;
}
return (s[par]>=x*k);
}
signed main()
{
fin>>k>>n;
for(i=1;i<=n;i++)
{
fin>>v[i];
s[i]=s[i-1]+v[i];
}
st=1;dr=1e12;
while(st<=dr)
{
mid=(st+dr)/2;
if(sol(mid,k))
{
keep=mid;
st=mid+1;
}
else dr=mid-1;
}
fout<<keep;
return 0;
}