Pagini recente » Cod sursa (job #387769) | Cod sursa (job #1974787) | Istoria paginii runda/ccex2015-10 | Cod sursa (job #2034666) | Cod sursa (job #1574530)
#include <algorithm>
#include <fstream>
using namespace std;
ifstream fin("caramizi.in");
ofstream fout("caramizi.out");
typedef long long i64;
const i64 nmax= 200000;
const i64 vmax= 1000000;
i64 c[nmax+2], d[vmax+1], d2[vmax+1];
int main( ) {
i64 n, m;
fin>>n>>m;
for ( i64 i= 1; i<=n; ++i ) {
fin>>c[i];
}
sort( c+1, c+n+1 );
c[0]= 1, c[n+1]= vmax+1;
i64 aux= -1;
for ( i64 i= 0; i<=n; ++i ) {
aux= aux+c[i];
for ( i64 j= c[i]; j<=c[i+1]-1; ++j ) {
d[j]= max(d[j-1], (aux/j+n-i)*j);
}
}
for ( i64 i= aux/c[n]; i>=1; --i ) {
d2[i]= max(d2[i+1], aux-aux%i);
}
for ( i64 cnt= 1; cnt<=m; ++cnt ) {
i64 y, sol= 0;
fin>>y;
sol= d2[aux/y+1];
if ( y<=vmax ) {
sol= d[y];
}
fout<<sol<<"\n";
}
return 0;
}