Pagini recente » Cod sursa (job #2786398) | Cod sursa (job #2833391) | Cod sursa (job #616211) | Cod sursa (job #136533) | Cod sursa (job #1427659)
#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("%lld %lld", &n, &m);
Ans = -1;
for(int i = 1; i <= n; ++i)
scanf("%lld", &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(1LL * Dp[j - 1], 1LL * Ans / j * j + 1LL * (n - i) * j);
}
}
for(int i = 1; i <= m; ++i){
scanf("%lld", &c);
if (c < INF)
printf("%lld\n", Dp[c]);
else
printf("%lld\n", Ans);
}
return 0;
}