Pagini recente » Cod sursa (job #3131527) | Diferente pentru utilizator/stargold2 intre reviziile 66 si 67 | Cod sursa (job #2452963)
#include <fstream>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
long long v[100005], n, k;
int main()
{
fin>>k>>n;
long long st=1, dr=0, last=st;
for(int i=1;i<=n;++i) fin>>v[i], dr+=v[i];
while(st<=dr)
{
long long mid=(st+dr)/2;
long long sum=0;
for(int i=1;i<=n;++i) sum+=min(v[i], mid);
if(sum<1LL*mid*k) dr=mid-1;
else last=mid, st=mid+1;
//fout<<mid<<" "<<sum<<" "<<mid*k<<" "<<(sum<mid*k)<<" "<<last<<"\n";
}
fout<<last<<"\n";
return 0;
}