Pagini recente » Cod sursa (job #69080) | Cod sursa (job #1483387) | Cod sursa (job #1683418) | Cod sursa (job #1019853) | Cod sursa (job #2021865)
# include <fstream>
# include <algorithm>
# define DIM 200010
# define PAS 262144
using namespace std;
ifstream fin("caramizi.in");
ofstream fout("caramizi.out");
long long c[DIM],s[DIM],d[DIM],D[DIM],n,m,i,j,pas,x;
int main () {
fin>>n>>m;
for(i=1;i<=n;i++)
fin>>c[i];
sort(c+1,c+n+1);
for(i=1;i<=n;i++)
s[i]=s[i-1]+c[i];
for(i=1;i<=DIM-5;i++){
for(j=0,pas=PAS;pas;pas/=2)
if(j+pas<=n&&c[j+pas]<=i)
j+=pas;
d[i]=max(d[i-1],i*(n-j+s[j]/i));
}
for(i=s[n]/(DIM+1);i>=1;i--)
D[i]=max(D[i+1],s[n]-s[n]%i);
for(i=1;i<=n;i++){
fin>>x;
if(x<=DIM)
fout<<d[x]<<"\n";
else
fout<<D[s[n]/x]<<"\n";
}
return 0;
}