Pagini recente » Cod sursa (job #1906343) | Cod sursa (job #2893385) | Cod sursa (job #2361177) | Cod sursa (job #1883002) | Cod sursa (job #1427658)
#include <cstdio>
#include <algorithm>
#define NMAX 200007
#define INF 1000007
using namespace std;
long long n, m, c, Ans, v[NMAX], Dp[INF];
int main(){
freopen("caramizi.in", "r", stdin);
freopen("caramizi.out", "w", stdout);
scanf("%d %d", &n, &m);
Ans = -1;
for(int i = 1; i <= n; ++i)
scanf("%d", &v[i]);
v[0] = 1;
v[n + 1] = INF;
sort(v + 1, v + n + 1);
for(int i = 0; i <= n; ++i){
Ans += v[i];
for(int j = v[i]; j < v[i + 1]; ++j){
Dp[j] = max(Dp[j - 1], Ans / j * j + (n - i) * j);
}
}
for(int i = 1; i <= m; ++i){
scanf("%d", &c);
if (c < INF)
printf("%lld\n", Dp[c]);
else
printf("%lld\n", Ans);
}
return 0;
}