#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void Main() { vector A = {1}; for(int i = 0;i < 8;i++) { A.push_back(A.back() * 3); } const int M = 9000; int off = M; vector dp(M + off + 1); dp[0 + off] = 1; for(int i = 0;i < 9;i++) { vector n_dp(M + off + 1); for(int j = -M;j <= M;j++) if(dp[j + off]) { for(int k = -1;k <= 1;k++) { int nj = j + A[i] * k; if(-M <= nj && nj <= M) { n_dp[nj + off] = 1; } } } swap(dp,n_dp); } for(int i = 1;i <= M;i++) { assert(dp[i + off]); } for(int i = 0;i < 9;i++) { cout << A[i] << (i == 8 ? "\n":" "); } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int tt = 1; /* cin >> tt; */ while(tt--) Main(); }