Pagini recente » Cod sursa (job #3001307) | Cod sursa (job #251028) | Cod sursa (job #681715) | Cod sursa (job #979776) | Cod sursa (job #2657995)
#include <bits/stdc++.h>
using namespace std;
ifstream in("progresii.in");
ofstream out("progresii.out");
typedef long long ll;
const ll lim=1e5+4;
ll p[lim],v[lim];
int main()
{
ll n,m,k,d;
in>>n>>m>>k>>d;
for(ll i=1;i<=n;++i)
{
in>>p[i];
p[i]=d-p[i];
v[i]=m;
k-=p[i]/m+1;
}
if(k<0)
{
out<<-1<<'\n';
return 0;
}
for(ll i=1;i<=n and k>=0;++i)
{
ll l=max(1LL,p[i]/(k+p[i]/m+1)),r=m,med;
while(l<r)
{
med=(l+r)/2;
if(p[i]/med-p[i]/m<=k)
r=med;
else l=med+1;
}
v[i]=l;
k-=p[i]/l-p[i]/m;
}
for(ll i=1;i<=n;++i)
out<<v[i]<<'\n';
return 0;
}