Pagini recente » Cod sursa (job #215969) | Cod sursa (job #1258796) | Cod sursa (job #2363875) | Cod sursa (job #2785447) | Cod sursa (job #2013817)
#include <bits/stdc++.h>
const int MAXC = (int) 1e6;
int fr[MAXC + 1];
long long sol[MAXC + 1];
int main() {
FILE *fi, *fout;
int i, n, m, l, c;
fi = fopen("caramizi.in" ,"r");
fout = fopen("caramizi.out" ,"w");
fscanf(fi,"%d %d " ,&n,&m);
for(i = 1; i <= n; i++) {
fscanf(fi,"%d " ,&c);
fr[c]++;
}
long long s = 0;
int p = 0;
for(i = 1; i <= MAXC; i++) {
p += fr[i];
s += 1LL * i * fr[i];
sol[i] = std::max(sol[i - 1], 1LL * (s / i) * i + 1LL * (n - p) * i);
}
for(i = 1; i <= m; i++) {
fscanf(fi,"%d " ,&l);
l = std::min(l, MAXC);
fprintf(fout,"%lld\n" ,sol[l]);
}
fclose(fi);
fclose(fout);
return 0;
}