Pagini recente » Cod sursa (job #2303418) | Cod sursa (job #1823712) | Cod sursa (job #1306563) | Cod sursa (job #2764628) | Cod sursa (job #516688)
Cod sursa(job #516688)
# 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, s = 0, mk = m * k;
while (s < mk && i <= n){
if (a[i] < k)
s += a[i];
else s += k;
++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;
}
int 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;
}