Pagini recente » Cod sursa (job #2602989) | Cod sursa (job #3190807) | Cod sursa (job #826469) | Cod sursa (job #2132821) | Cod sursa (job #516683)
Cod sursa(job #516683)
# 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;
}
if (i <= n && 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 (1, sum / k) << '\n';
g.close ();
return 0;
}