Pagini recente » Cod sursa (job #1406918) | Cod sursa (job #2843183) | Cod sursa (job #3267263) | Cod sursa (job #576099) | Cod sursa (job #2026330)
#include <bits/stdc++.h>
using namespace std;
int n, m;
const int Lmax = 1000000;
int f[Lmax + 5];
long long d[Lmax + 5];
int main()
{
freopen("caramizi.in", "r", stdin);
freopen("caramizi.out", "w", stdout);
scanf("%d%d", &n, &m);
int x, Max = 0;
for(int i = 1; i <= n ; ++i){
scanf("%d", &x);
++f[x];
if(x > Max) Max = x;
}
long long Sum = 0;
int k = 0;
for(int i = 1; i <= Lmax ; ++i){
Sum = Sum + f[i] * i;
k += f[i];
d[i] = max(d[i - 1], Sum - Sum % i + 1LL * (n - k) * i);
}
for(int i = 1; i <= m ; ++i){
scanf("%d", &x);
if(x <= Lmax) printf("%lld\n", d[x]);
else printf("%lld\n", Sum - Sum % (Sum / x));
}
return 0;
}