Pagini recente » Cod sursa (job #623460) | Cod sursa (job #2479827) | Cod sursa (job #1669977) | Cod sursa (job #1859011) | Cod sursa (job #851108)
Cod sursa(job #851108)
#include <fstream>
using namespace std;
ifstream in("progresii.in");
ofstream out("progresii.out");
long long n,v,l,d,sl;
long long pi[100100],sol[100100];
int main()
{
in>>n>>v>>l>>d;
for(int i=1;i<=n;++i)
{
in>>pi[i];
sol[i]=v;
sl+=(d-pi[i])/v+1;
}
if(sl-l>0)
{
out<<"-1";
return 0;
}
else
for(int i=1;i<=n;++i)
{
long long nr=sol[i],cnt=(1LL<<32);
sl-=(d-pi[i])/v+1;
for(;cnt>0;cnt>>=1)
if(nr-cnt>0)
if(sl+(d-pi[i])/(nr-cnt)+1<=l) nr-=cnt;
sl+=(d-pi[i])/nr+1;
/*if(sl>l)
{
out<<"-1";
}*/
sol[i]=nr;
}
for(int i=1;i<=n;++i)
out<<sol[i]<<'\n';
out.close();
return 0;
}