#include #include #include using namespace std; using namespace atcoder; using mint = modint998244353; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 4000000000000000001 using P = pair>; int main(){ long long n,a,b,c; cin>>n>>a>>b>>c; vector dis(n,vector(2,Inf64)); dis[1][1] = a+b; priority_queue,greater

> Q; Q.emplace(a+b,make_pair(1,1)); while(Q.size()>0){ long long D = Q.top().first; int x = Q.top().second.first; int y = Q.top().second.second; Q.pop(); if(dis[x][y]!=D)continue; { int nx = (x+1)%n; int ny = y; long long nD = D + a; if(y==0){ ny = 1; nD += b; } if(dis[nx][ny]>nD){ dis[nx][ny] = nD; Q.emplace(nD,make_pair(nx,ny)); } } { int nx = (x*2)%n; int ny = 0; long long nD = D + c; if(dis[nx][ny]>nD){ dis[nx][ny] = nD; Q.emplace(nD,make_pair(nx,ny)); } } } rep(i,n){ cout<