Pagini recente » Cod sursa (job #3039871) | Cod sursa (job #1290684) | Cod sursa (job #3261507) | Cod sursa (job #3277316) | Cod sursa (job #2107431)
#include<fstream>
using namespace std;
#define ll long long
const int maxn = 100003;
const int maxk = 1003;
int n,k;
int a[maxn];
bool check(ll x) {
ll sum = 0;
for(int i=0;i<n;++i) {
if(a[i] > x) sum += x;
else sum += a[i];
if(sum/k >= x) return true;
}
return false;
}
int32_t main(){
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
fin >> k >> n;
ll total = 0;
for(int i=0;i<n;++i) {
fin >> a[i];
total += a[i];
}
ll lo = 0;
ll hi = total / k;
while(hi - lo > 1) {
// cout << lo << ' ' << hi << '\n';
ll mid = (lo + hi) / 2;
if(check(mid))
lo = mid;
else
hi = mid;
}
if(check(hi))
fout << hi << '\n';
else
fout << lo << '\n';
return 0;
}