Pagini recente » Cod sursa (job #820684) | Cod sursa (job #2910583)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
int k,n,v[100005];
bool calcul(int nr)
{
long long target = k*nr;
long long sum = 0;
for(int i=1;i<=n;i++)
{
int q =min(nr,v[i]);
sum+=q;
if(sum==target)
{
return true;
}
}
return false;
}
int b_search()
{
int st=1;
int dr=1000000000;
int poz=1;
while(st<=dr)
{
int mid = (st+dr)/2;
if(calcul(mid))
{
st=mid+1;
poz=mid;
}
else{
dr=mid-1;
}
}
return poz;
}
int main()
{
fin>>k;
fin>>n;
for(int i=1;i<=n;i++){
fin>>v[i];
}
fout<<b_search();
}