#include using namespace std; using ll = long long; #define rep(i, s, t) for (int i = (int)(s); i < (int)(t); ++i) #define revrep(i, t, s) for (int i = (int)(t)-1; i >= (int)(s); --i) #define all(x) begin(x), end(x) template bool chmax(T& a, const T& b) { return a < b ? (a = b, 1) : 0; } template bool chmin(T& a, const T& b) { return a > b ? (a = b, 1) : 0; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(15); ll N, A, B, C; cin >> N >> A >> B >> C; int L = 31; vector ans(N, 1e18), dist(N*L, 1e18); using P = pair; priority_queue, greater<>> pq; rep(z,0,L) pq.push({A+B+z*C, N*z+(1LL< dist[v]) continue; int z = v/N, i = v%N; chmin(ans[i], d); ll nd = d+A, u = N*z+(i+(1LL< nd) { dist[u] = nd; pq.push({nd, u}); } rep(w,z+1,L) { ll nd = d+B+(w-z)*C, u = N*w+i; if (dist[u] > nd) { dist[u] = nd; pq.push({nd, u}); } } } rep(i,0,N) cout << ans[i] << "\n"; }