n,t,x,y,*d=map(int,open(0).read().split()) d.sort() q=[] ts=[] for i in d: if not q or i-q[-1]<=t: q+=i, else: ts+=len(q), q=[i] ts+=len(q), ts.sort() ans=[] t=ts.pop() nx=0 for i in range(1,n+1): if i>t: t+=ts.pop() nx+=1 a=min(x*nx,y*nx) ans+=a, print(*ans)