Pagini recente » Cod sursa (job #682017) | Cod sursa (job #1530634) | Cod sursa (job #1976648) | Cod sursa (job #1931181) | Cod sursa (job #164202)
Cod sursa(job #164202)
#include<cstdio>
long long n,i,a[100001],m,l,k,v[100001],t;
int main()
{
freopen("progresii.in","r",stdin);
freopen("progresii.out","w",stdout);
scanf("%lld %lld %lld %lld",&n,&m,&k,&l);
for(i=1;i<=n;i++){
scanf("%lld",&a[i]);
a[i]=l-a[i];
t=t+a[i]+1;
v[i]=1;}
i=n;
while(t>k && i>0){
v[i]=m;
t=t-a[i]+a[i]/m;
while(v[i]!=1 && a[i]/(v[i]-1)==a[i]/m) v[i]--;
if(t<k){
t=t+a[i]-a[i]/m;
while(v[i]!=1 && t-a[i]+a[i]/(v[i]-1)<=k) v[i]--;
t=t-a[i]+a[i]/v[i];}
i--;}
if(t>k){
printf("-1\n");
goto end;}
for(i=1;i<=n;i++)
printf("%lld\n",v[i]);
end:
fclose(stdout);
return 0;
}