Pagini recente » Cod sursa (job #2770639) | Cod sursa (job #1765791) | Cod sursa (job #2223112) | Cod sursa (job #2632371) | Cod sursa (job #520844)
Cod sursa(job #520844)
#include <algorithm>
using namespace std;
#define DIM 100005
long long v[DIM],sum[DIM];
long long n,m,k,l;
void read ()
{
long long i;
scanf ("%lld%lld%lld%lld",&n,&m,&k,&l);
for (i=1; i<=n; ++i)
scanf ("%lld",&v[i]);
}
long long cbin (int start,int lim)
{
long long st,dr,mij,sol;
for (st=1, dr=sol=m; st<=dr; )
{
mij=(st+dr)/2;
if ((l-start)/mij+1<=lim)
{
sol=mij;
dr=mij-1;
}
else
st=mij+1;
}
return sol;
}
void solve ()
{
long long i,nr;
for (i=n; i>=1; --i)
sum[i]=sum[i+1]+(l-v[i])/m+1;
for (i=1; i<=n; ++i)
{
nr=cbin (v[i],k-sum[i+1]);
printf ("%lld\n",nr);
k-=(l-v[i])/nr+1;
}
}
int main ()
{
freopen ("progresii.in","r",stdin);
freopen ("progresii.out","w",stdout);
read ();
solve ();
return 0;
}