from heapq import* N,A,B,C=map(int,input().split()) dist=[1<<60]*(N*2) dist[1]=A+B hq=[(A+B,1)] while hq: di,po=heappop(hq) flg=int(po>=N) po%=N if dist[(po*2%N)+N]>di+C: dist[(po*2%N)+N]=di+C heappush(hq,[di+C,(po*2%N)+N]) if dist[(po+1)%N]>di+A+B*flg: dist[(po+1)%N]=di+A+B*flg heappush(hq,[di+A+B*flg,(po+1)%N]) for i in range(N): print(min(dist[i],dist[i+N]))