Pagini recente » Cod sursa (job #897890) | Cod sursa (job #2540966) | Profil God4life | Cod sursa (job #2842632) | Cod sursa (job #252740)
Cod sursa(job #252740)
#include <stdio.h>
#define DMax 100009
long a[DMax],sum[DMax],val[DMax];
long n,m,i,in,st,mij;
long long l,k;
void citire();
int main()
{
freopen("progresii.in","r",stdin);
freopen("progresii.out","w",stdout);
citire();
for(i=1;i<=n;i++)
{
/* in=1;
st=m;
while(in<=st)
{
mij=(in+st)/2;
if((k-(1+(l-a[i])/mij)) >= sum[i+1]) st=mij-1;
else in=mij+1;
} */
for(in=1;in<=m;in++)
if((k-(1+(l-a[i])/in)) >= sum[i+1])break;
val[i]=in;
k=k-(1+(l-a[i])/val[i]);
}
for(i=1;i<=n;i++) printf("%ld\n",val[i]);
return 0;
}
void citire()
{
long i;
scanf("%ld %ld %lld %lld\n",&n,&m,&k,&l);
for(i=1;i<=n;i++)
scanf("%ld\n",&a[i]);
sum[n]=1+(l-a[n])/m;
for(i=n-1;i>=1;i--)
sum[i]=sum[i+1]+1+(l-a[i])/m;
}