Pagini recente » Cod sursa (job #134623) | Cod sursa (job #1138636) | Cod sursa (job #991934) | Cod sursa (job #1034424) | Cod sursa (job #1157174)
#include<cstdio>
using namespace std;
long long p,u,mij,j,n,m,k,l,i,t,spm,pm,vv,x;
long long v[100101];
int main()
{
FILE*f=fopen("progresii.in","r");
fscanf(f,"%lld %lld %lld %lld",&n,&m,&k,&l);
for(i=1;i<=n;i++)
{
fscanf(f,"%lld",&x);
v[i]=l-x;
pm=1+v[i]/m;
spm+=pm;
}
FILE*g=fopen("progresii.out","w");
if (spm<=k)
{
for (i=1;i<=n;i++)
{
vv=spm-(1+v[i]/m);
p=1;
u=m;
while (p<=u)
{
mij=(p+u)/2;
if(vv>k-(1+v[i]/mij))
{
p=mij+1;
}
else
u=mij-1;
}
t=p;
fprintf(g,"%lld\n",t);
spm-=(1+v[i]/m);
k-=(1+v[i]/t);
}
}
else
fprintf(g,"-1");
return 0;
}