Pagini recente » Cod sursa (job #608215) | Cod sursa (job #666009) | Cod sursa (job #2988048) | Cod sursa (job #1999665) | Cod sursa (job #1077732)
#include<fstream>
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
int n,k,i,v[100001];
long long st,dr,maxm;
bool rezolv(int x)
{
long long sum=0,prag;
prag=x*k;
for(i=n;i>=1&&sum<prag;i--)
if(v[i]>=x)
sum+=x;
else
sum+=v[i];
// g<<x<<" "<<" "<<prag<<" "<<sum<<'\n';
if(sum>=prag)
return 1;
return 0;
}
long long caut_bin()
{
int m;
st=1;dr=maxm;
while(st<=dr)
{
m=(st+dr)/2; // 6 3 4
if(!rezolv(m))
dr=m-1;
else
st=m+1;
}
return st-1;
}
int main()
{
f>>k>>n;
for(i=1;i<=n;i++)
{f>>v[i];maxm+=v[i];}
g<<caut_bin();
f.close();g.close();
return 0;
}