Pagini recente » Cod sursa (job #948919) | Cod sursa (job #698338) | Cod sursa (job #2703610) | Cod sursa (job #2344407) | Cod sursa (job #1413033)
#include <cstdio>
long long a[100001],l,k,v[100001],s;
int n,m,i,crt,nr;
bool OK;
using namespace std;
int main()
{
freopen("progresii.in","r",stdin);
freopen("progresii.out","w",stdout);
scanf("%d %d %lld %lld\n",&n,&m,&k,&l);
for (i=1; i<=n; i++)
{
scanf("%lld\n",&a[i]);
a[i]=l-a[i]+1;
}
crt=n;
for (i=1; i<=n; i++) v[i]=1;
while (OK==false && crt>=1)
{
s=0;
for (i=1; i<=n; i++) s=s+a[i]/v[i];
if (s>k)
{
if (v[crt]>=m) crt--;
else
{
if (v[crt]==a[crt]) crt--;
else
{
while (a[crt]/v[crt]!=0) v[crt]++;
v[crt]--;
}
}
}
else OK=true;
}
if (crt==0) printf("-1\n");
else for (i=1; i<=n; i++) printf("%lld\n",v[i]);
return 0;
}