Cod sursa(job #1797978)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 4 noiembrie 2016 20:32:44
Problema Progresii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
using namespace std;
ifstream f("progresii.in");
ofstream g("progresii.out");
int n,m,i;
long long k,l,tot,d[1<<17],v[1<<17];
int main()
{
    f>>n>>m>>k>>l;
    for(i=1;i<=n;++i)
    {
        f>>d[i];
        d[i]*=-1;
        d[i]+=l;
        tot+=d[i]/m;
        v[i]=m;
    }
    k-=n;
    for(i=1;i<=n;++i)
    {
        long long val,can=k-tot+d[i]/m;
        if(can<0) break;
        val=((d[i]<=can)?1:d[i]/(can+1)+1);
        tot+=d[i]/val-d[i]/m;
        v[i]=val;
    }
    if(tot>k) g<<"-1\n";
    else for(i=1;i<=n;++i) g<<v[i]<<'\n';
    return 0;
}