Cod sursa(job #1466088)

Utilizator enedumitruene dumitru enedumitru Data 28 iulie 2015 17:13:08
Problema Progresii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
using namespace std;
ifstream f("progresii.in"); ofstream g("progresii.out");
int n,m,i;
long long k,l,tot,d[100002],v[100002];
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;
        if(d[i]<=can) val=1; else val=d[i]/(can+1)+1;
        tot-=d[i]/m; tot+=d[i]/val; v[i]=val;
    }
    if(tot>k) g<<"-1\n";
    else for(i=1;i<=n;++i) g<<v[i]<<'\n';
    g.close(); return 0;
}