Pagini recente » Cod sursa (job #1085683) | Cod sursa (job #177155) | Cod sursa (job #1230355) | Cod sursa (job #1505648) | Cod sursa (job #1897553)
#include <fstream>
#include <algorithm>
using namespace std;
const int NMAX = 100000 + 5;
const int VALMAX = 1000000 + 5;
typedef long long int lint;
int N, K;
int v[NMAX];
lint cnt(lint groups) {
lint sum = 0;
for (int i = 1; i <= N; ++ i)
sum += min(1LL * v[i], groups);
return sum;
}
int main()
{
ifstream cin("grupuri.in");
ofstream cout("grupuri.out");
cin >> K >> N;
for (int i = 1; i <= N; ++ i)
cin >> v[i];
lint st = 1;
lint dr = 1LL * NMAX * VALMAX;
lint ans = 0;
while (st <= dr) {
lint mid = (st + dr) >> 1;
if (cnt(mid) >= mid * K) {
ans = mid;
st = mid + 1;
}
else
dr = mid - 1;
}
cout << ans << '\n';
return 0;
}