Pagini recente » Cod sursa (job #698793) | Cod sursa (job #1907457) | Cod sursa (job #1068167) | Cod sursa (job #1949842) | Cod sursa (job #3167293)
#include <bits/stdc++.h>
#define START ios::sync_with_stdio(false); fin.tie(NULL); fout.tie(NULL);
#define STOP fin.close(); fout.close(); return 0;
#define MAX 100000
#define NRMAX 2000000000
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
long long nr, n, sum;
long long v[MAX+1];
bool sunt_smecher(long long m)
{
long long cnt = 0, sum_loc=1;
for(int i=1; i<=n; i++)
{
if(v[i]>=m)
cnt++;
else
{
sum_loc+=v[i];
if(sum_loc>m)
cnt++, sum_loc-=m;
}
}
if(cnt>=nr)
return 1;
return 0;
}
int main()
{
START
fin >> nr >> n;
for(int i=1; i<=n; i++)
{
fin >> v[i];
sum+=v[i];
}
int div = sum/nr;
int st = 1, dr = NRMAX+1;
while(st<=dr)
{
int mij = (st+dr)/2;
if(sunt_smecher(mij)==1)
st = mij+1;
else
dr = mij-1;
}
fout << dr;
STOP
}