Pagini recente » Cod sursa (job #2266446) | Cod sursa (job #3222078) | Cod sursa (job #1072789) | Cod sursa (job #1120781) | Cod sursa (job #1201767)
#include <cstdio>
#include<algorithm>
#define DIM 8192
using namespace std;
int n,m,pz,i,c,cmax;
long long s,A[1000005],Nr[1000005],R[1000005],D[1000005],H[200005];
char ax[DIM+16];
inline void cit(int &x)
{ x=0;
while(ax[pz]<'0' || ax[pz]>'9')
if(++pz==DIM) fread(ax,1,DIM,stdin), pz=0;
while(ax[pz]>='0' && ax[pz]<='9')
{ x=x*10+ax[pz]-'0';
if(++pz==DIM) fread(ax,1, DIM, stdin), pz=0;
}
}
int main()
{ freopen ("caramizi.in","r",stdin); freopen ("caramizi.out","w",stdout);
cit(n); cit(m);
for(i=1;i<=n;++i) cit(c), ++A[c], cmax=max(cmax,c), s+=c;
for(i=1;i<=cmax;++i) R[i]=R[i-1]+i*A[i];
for(i=cmax;i;--i) Nr[i]=Nr[i+1]+A[i];
for(i=1;i<=cmax;++i) D[i]=max(D[i-1],R[i]/i*i+Nr[i+1]*i);
H[s/cmax+1]=D[cmax];
for(i=s/cmax;i;--i) H[i]=max(H[i+1],s/i*i);
for(i=1;i<=m;++i)
{ cit(c);
if(c<=cmax) printf("%lld\n",D[c]); else printf("%lld\n",max(s/c*c,H[s/c+1]));
}
return 0;
}