Pagini recente » Rating Alexa Sergiu (antoniu200) | Cod sursa (job #2276219) | Cod sursa (job #3266418) | Cod sursa (job #3285390) | Cod sursa (job #3289754)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
const int N=1e5+5;
int n,i,j,k,v[N],st,dr,mid,sol;
long long s[N];
bool vrf(int r,int k)
{
int st=1,dr=n,mid,sol=0;
while(st<=dr)
{
mid=(st+dr)>>1;
if(v[mid]<r)
{
st=mid+1;
}
else
{
sol=mid;
dr=mid-1;
}
}
int x=n;
if(sol)
{
k-=(n-sol+1);
x=sol-1;
}//cout<<r<<' '<<sol<<' '<<n-sol+1<<'\n';
return (s[x]>=1ll*r*k);
}
int main()
{
fin>>k>>n;
for(i=1;i<=n;++i)
{
fin>>v[i];
s[i]=s[i-1]+v[i];
}
st=1; dr=1e6;
while(st<=dr)
{
mid=(st+dr)>>1;
if(vrf(mid,k))
{
sol=mid;
st=mid+1;
}
else
{
dr=mid-1;
}
}
fout<<sol;
return 0;
}