Pagini recente » Cod sursa (job #26270) | Cod sursa (job #942878) | Cod sursa (job #1321017) | Cod sursa (job #3269304) | Cod sursa (job #254277)
Cod sursa(job #254277)
#include <cstdio>
#include <algorithm>
using namespace std;
long long A[200000];
int B[200000],C[200000];
int main()
{
freopen("caramizi.in","r",stdin);
freopen("caramizi.out","w",stdout);
int n,m,i,j,nr,k;
scanf("%d%d",&n,&m);
for (i=1;i<=n;i++) scanf("%d",&B[i]),A[1]+=B[i];
sort(B+1,B+n+1);
for (i=2;i<=n;i++)
{
nr=0;
for (j=1;j<=n;j++) C[j]=B[j];
for (j=1;n-j+1>=i;j++)
while (C[j])
{
nr++;
C[j]--;
for (k=0;k<i-1;k++) C[n-k]--;
sort(C+j,C+n+1);
}
A[i] = nr;
}
long long max;
for (i=1;i<=m;i++)
{
max = 0;
scanf("%d",&k);
for (j=1;j<=n;j++) if (A[j]>k) if (j*k>max) max = j*k;
else;
else if (A[j]*j>max) max = A[j]*j;
printf("%lld\n",max);
}
}