Pagini recente » Cod sursa (job #1366) | Cod sursa (job #1900563) | Cod sursa (job #154766) | Cod sursa (job #651490) | Cod sursa (job #2021464)
#include <bits/stdc++.h>
#define MaxN 1000005
#define INF 2140000000
using namespace std;
FILE *IN,*OUT;
int N,M,P=0,X,cnt[MaxN],Max=0;
long long d1[MaxN],S=0,d2[MaxN];
int main()
{
IN=fopen("caramizi.in","r");
OUT=fopen("caramizi.out","w");
fscanf(IN,"%d%d",&N,&M);
for(int i=1;i<=N;i++)
{
fscanf(IN,"%d",&X);
cnt[X]++;
Max=max(Max,X);
}
for(int i=1;i<=1e6;i++)
{
P+=cnt[i];
S+=1LL*cnt[i]*i;
d1[i]=max(d1[i-1],1LL*(S/i+N-P)*i);
}
for(int i=S/Max;i>0;i--)
d2[i]=max(d2[i+1],S-S%i);
for(int i=1;i<=M;i++)
{
fscanf(IN,"%d",&X);
if(X<=1e6)
fprintf(OUT,"%lld\n",d1[X]);
else fprintf(OUT,"%lld\n",d2[S/X+1]);
}
return 0;
}