Pagini recente » Cod sursa (job #1922036) | Cod sursa (job #3290736) | Cod sursa (job #2776508) | Cod sursa (job #2927949) | Cod sursa (job #1201813)
#include <fstream>
#include <algorithm>
#define LL long long
using namespace std;
ifstream fin("caramizi.in");
ofstream fout("caramizi.out");
const int Nmax = 200009, oo = 1000009;
LL n, m, c, sol = -1, V[Nmax], dp[oo];
int main()
{
fin >> n >> m;
for (int i=1; i<=n; i++)
fin >> V[i];
V[0] = 1;
V[n+1] = oo;
sort (V+1, V+1+n);
for (int i=0; i<=n; i++)
{
sol += V[i];
for (int j=V[i]; j<V[i+1]; j++)
{
dp[j] = max (dp[j-1], sol/j*j + (n-i)*j);
}
}
for (int i=1; i<=m; i++)
{
fin >> c;
if (c < oo) fout << dp[c] << '\n';
else fout << sol << '\n';
}
fout.close();
return 0;
}