Pagini recente » Cod sursa (job #978912) | Cod sursa (job #2281662) | Cod sursa (job #1104321) | Cod sursa (job #1055081) | Cod sursa (job #429800)
Cod sursa(job #429800)
//O(LMAX*N) ar trebui sa ia 50 puncte
#include<iostream>
#include<string>
using namespace std;
#define NM 200005
int N,M,C[NM],L[NM];
long long B[NM];
int main()
{
freopen("caramizi.in","r",stdin);
freopen("caramizi.out","w",stdout);
scanf("%d %d",&N,&M);
for(int i=1;i<=N;++i)
scanf("%d",&C[i]);
int LMAX=0;
for(int i=1;i<=M;++i)
{
scanf("%d",&L[i]);
LMAX=max(LMAX,L[i]);
}
for(int l=1;l<=LMAX;++l)
{
long long total=0;
for(int i=1;i<=N;++i)
total+=min(l,C[i]);
B[l]=max(B[l-1],(total/l)*l);
}
for(int i=1;i<=M;++i)
printf("%lld\n",B[L[i]]);
return 0;
}