Untitled

 avatar
unknown
plain_text
a year ago
1.8 kB
12
Indexable
#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef long long ll;
typedef vector<int> vi;
typedef vector<vector<int>> vvi;
// ------------------------MeMe-----------------------//

vector<int> transform(int number, int base){
    vector<int> v;
    while(number){
        v.emplace_back(number % base);
        number /= base;
    }
    return v;
}
 
void code() {
    int a, b; cin >> a >> b;
    vector<int> v = transform(b, a);
    int sum = 0;
    for (auto &i : v){
        sum += i;
    }
    
    if (sum > a)
        return void (cout << -1);
    int rem = a - sum;
    if (rem % (a - 1))
        return void (cout << -1);
    
    rem /= a - 1;
    int sz = v.size();
    for (int i = sz - 1; i > 0; --i){
        if (v[i] <= rem){
            v[i - 1] += v[i] * a;
            rem -= v[i];
            v[i] = 0;
        }
        else {
            v[i] -= rem;
            v[i - 1] += rem * a ;
            rem = 0;
        }
    }
    sum = 0;
    for (auto &i : v){
        sum += i;
    }
    if (sum != a)
        return void (cout << -1);
    
    cout << sz - 1 << '\n';
    int x = 0;
    for (int i = 0; i < sz; ++i){
        cout << v[i] << ' '; 
    }
}

int32_t main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    freopen("err.txt", "w", stderr);
    #endif

    int tt = 1;
     //cin >> tt;
    for (int tn = 1 ; tn <= tt ; tn++) {
        #ifndef ONLINE_JUDGE
        cout << "_________Test_" << tn << "_________" << endl;
        cerr << "_________Test_" << tn << "_________" << endl;
        #endif
        code();
    }

    #ifndef ONLINE_JUDGE
    cout << "________________________" ;
    cerr << "________________________" ;
    #endif
    return 0;
}
Editor is loading...
Leave a Comment