Pagini recente » Cod sursa (job #3147666) | Cod sursa (job #2242525) | Cod sursa (job #1714006) | Cod sursa (job #1037528) | Cod sursa (job #2100508)
#include <fstream>
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");
long long n, i, j, k, s, t, a[100005], st, dr, mij;
int main ()
{
f>>k>>n;
for (i=1;i<=n;i++)
{
f>>a[i];
s+=a[i];
}
st=1;
dr=s/k;
while (st<=dr)
{
mij=st+(dr-st)/2;
s=0;
for (i=1;i<=n;i++)
{
if (a[i]<mij) s += a[i];
else s += mij;
}
if (s>=mij*k) st = mij+1;
if (s<mij*k) dr = mij-1;
}
s=0;
st=mij+1;
for (i=1;i<=n;i++)
{
if (a[i]<st) s+=a[i];
else s+=st;
}
if (s>=st*k) mij++;
s=0;
for (i=1;i<=n;i++)
{
if (a[i]<mij) s+=a[i];
else s+=mij;
}
if (s<mij*k) mij--;
g<<mij<<'\n';
}