Pagini recente » Cod sursa (job #956967) | Cod sursa (job #2189233) | Cod sursa (job #544418) | Cod sursa (job #3164145) | Cod sursa (job #2107429)
#include<bits/stdc++.h>
#define ll long long
#define pii pair<int,int>
#define pll pair<ll,ll>
#define fi first
#define se second
#define sz size
#define pb push_back
#define mp make_pair
#define bg begin
#define nd end
using namespace std;
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(){
FILE *fin = fopen("grupuri.in","r");
FILE *fout = fopen("grupuri.out","w");
fscanf(fin,"%d %d",&k,&n);
ll total = 0;
for(int i=0;i<n;++i) {
fscanf(fin,"%d",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))
fprintf(fout,"%lld\n",hi);
else
fprintf(fout,"%lld\n",lo);
return 0;
}