Pagini recente » Cod sursa (job #187645) | Monitorul de evaluare | Cod sursa (job #1702298) | Istoria paginii utilizator/rarespodaru | Cod sursa (job #1796979)
#include<fstream>
using namespace std;
ifstream f("caramizi.in");
ofstream g("caramizi.out");
int i,j,n,m,cmax;
long long s,R[1<<20],C[1<<18],many[1<<20];
int main()
{
f>>n>>m;
for(i=1;i<=n;++i)
{
f>>j;
++many[j];
cmax=max(cmax,j);
s+=j;
}
for(i=1;i<=cmax;++i)
R[i]=R[i-1]+i*many[i];
for(i=cmax;i;--i)
many[i]+=many[i+1];
for(i=1;i<=cmax;++i)
R[i]=max(R[i-1],((R[i]+many[i+1]*i)/i)*i);
C[s/cmax+1]=R[cmax];
for(i=s/cmax;i;--i)
C[i]=max(C[i+1],(s/i)*i);
C[0]=C[1];
for(i=1;i<=m;++i)
{
f>>j;
if(j>cmax) R[j]=max((s/j)*j,C[s/j+1]);
g<<R[j]<<'\n';
}
return 0;
}