Pagini recente » Cod sursa (job #935150) | Cod sursa (job #2079587) | Cod sursa (job #1631348) | Cod sursa (job #1995446) | Cod sursa (job #164442)
Cod sursa(job #164442)
#include <stdio.h>
long long sum,x,n,m,k,l,i;
long long conc[100010];
long long poz[100010];
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",&poz[i]);
sum=0;
for (i=1; i<=n; i++)
{
conc[i]=m;
sum++;
sum=sum+(l-poz[i])/m;
}
if (sum>k) printf("-1\n");
else
{
for (i=1; i<=n; i++)
{
sum=sum-((l-poz[i])/m+1);
x=k-sum;
if (l-poz[i]+1<x)
{
x=l-poz[i]+1;
conc[i]=1;
}
else
{
conc[i]=(l-poz[i]+1)/x;
if ((l-poz[i]+1)%x!=0) conc[i]++;
x=(l-poz[i]+1)/conc[i];
if ((l-poz[i]+1)%conc[i]!=0) x++;
}
sum+=x;
}
for (i=1; i<=n; i++)
printf("%lld\n",conc[i]);
}
return 0;
}