Cod sursa(job #2022004)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 15 septembrie 2017 12:06:51
Problema Caramizi Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
# include <fstream>
# define DIM 1000010
using namespace std;
ifstream fin("caramizi.in");
ofstream fout("caramizi.out");
long long d[DIM],D[DIM],s;
long long f[DIM],c[DIM],l[DIM],n,m,i,poz,x;
int main () {
    fin>>n>>m;
    for(i=1;i<=n;i++){
        fin>>c[i];
        f[c[i]]++;
    }
    for(i=1;i<=DIM-5;i++){
        s+=1LL*i*f[i];
        poz+=f[i];
        d[i]=max(d[i-1],1LL*i*(n-poz+s/i));
    }
    for(i=s/(DIM-6);i>0;i--)
        D[i]=max(D[i+1],s-s%i);
    for(i=1;i<=n;i++){
        fin>>x;
        if(x<=DIM)
            fout<<d[x]<<"\n";
        else
            fout<<D[s/x+1]<<"\n";
    }
    return 0;
}