Pagini recente » Cod sursa (job #1522190) | Cod sursa (job #2332504) | Cod sursa (job #247644) | Cod sursa (job #1877225) | Cod sursa (job #3282135)
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
#define ll long long
ll N, K, suma;
vector<ll> animale;
ll check(ll x) {
ll sum = 0;
for (int i = 1; i <= N; i++) {
sum += min(x, animale[i]);
}
return sum >= K * x;
}
ll cb(ll n, ll k) {
ll st = 1;
ll dr = suma;
ll ans = 0;
while(st <= dr){
ll m = (st + dr) / 2;
if(check(m) == 1){
st = m + 1;
ans = m;
}
else{
dr = m - 1;
}
}
return ans;
}
int main() {
fin >> K >> N;
animale.resize(N + 1);
for (int i = 1; i <= N; ++i) {
fin >> animale[i];
suma += animale[i];
}
fout << cb(N, K);
}