Pagini recente » Cod sursa (job #852203) | Cod sursa (job #2790434) | Cod sursa (job #2343214) | Cod sursa (job #3148347) | Cod sursa (job #1852591)
#include <bits/stdc++.h>
#define Nmax 100005
using namespace std;
int n,m;
long long k,L,d[Nmax],sum[Nmax];
int main()
{
int i;
long long x;
ifstream cin("progresii.in");
ofstream cout("progresii.out");
cin>>n>>m>>k>>L;
for(i=1;i<=n;++i)
{
cin>>d[i]; d[i]=L-d[i];
}
for(i=n;i;--i)
{
sum[i]=sum[i+1]+d[i]/m;
if(sum[i]>k-n)
{
cout<<"-1\n";
return 0;
}
}
k-=n;
for(i=1;i<=n;++i)
{
if(k==sum[i+1]) x=d[i]+1;
else
{
x=max(1LL,d[i]/(k-sum[i+1]));
while(d[i]/x > k-sum[i+1]) ++x;
while(x>1 && d[i]/(x-1) <= k-sum[i+1]) --x;
}
cout<<x<<"\n";
k-=d[i]/x;
}
return 0;
}