Pagini recente » Cod sursa (job #1940576) | Cod sursa (job #2444816) | Cod sursa (job #1158347) | Cod sursa (job #2226893) | Cod sursa (job #189682)
Cod sursa(job #189682)
#include <stdio.h>
#define Nmax 200001
int v[Nmax];
int n,m;
int k,l;
int S;
void scan()
{
freopen("progresii.in", "r", stdin);
freopen("progresii.out", "w",stdout);
scanf("%d%d%d%d", &n,&m,&k,&l);
for(int i=1;i<=n;++i)
{
scanf("%d", &v[i]);
v[i]=l-v[i]+1;
S+=v[i]/m;
}
}
inline int max(int x,int y)
{
if(x>y)
return x;
return y;
}
inline int min(int x,int y)
{
if(x<y)
return x;
return y;
}
void solve()
{
if(S>k)
{
printf("-1\n");
return;
}
int minv,kk;
for(int i=1;i<=n;++i)
{
S-=v[i]/m;
kk=k-S;
if(v[i]>kk)
{
if(kk)
minv=v[i]/kk;
else
minv=v[i]+1;
}
else
minv=(v[i]+1)/kk;
k-=v[i]/minv;
//printf("k=%d kk=%d s=%d min=%d v[i]=%d ",k,kk,S,minv,v[i]);
printf("%lld\n",minv);
}
}
int main()
{
scan();
solve();
return 0;
}