Pagini recente » Cod sursa (job #30991) | Cod sursa (job #1149052) | Cod sursa (job #1697994) | Cod sursa (job #1928552) | Cod sursa (job #516692)
Cod sursa(job #516692)
# include <fstream>
using namespace std;
ifstream f ("grupuri.in");
ofstream g ("grupuri.out");
int k, n, a[100100];
int check (int m){
int i = 1, mk = m * k;
long long s = 0;
while (s < mk && i <= n){
if (a[i] < m)
s += a[i];
else s += m;
++i;
}
if (s >= mk) return 1;
return 0;
}
int cb (int in, int sf){
int ret = 0;
while (in <= sf){
int m = (in + sf) >> 1;
if (check (m)){
in = m + 1;
ret = m;
}
else sf = m - 1;
}
return ret;
}
long long sum;
int main (){
f >> k >> n;
for (int i = 1; i <= n; ++i)
f >> a[i], sum += a[i];
g << cb (0, sum / k) << '\n';
g.close ();
return 0;
}