Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define eb emplace_back
- #define pb push_back
- #define fi first
- #define se second
- using namespace std;
- typedef long long ll;
- typedef pair<int, int> ii;
- const int N = 65536 + 7;
- stack<int> e[N];
- vector<int> path;
- void dfs(int u) {
- int v;
- while(e[u].size()) {
- v = e[u].top();
- e[u].pop();
- dfs(v);
- }
- path.pb(u);
- }
- int main() {
- ios::sync_with_stdio(0); cin.tie(0);
- int n, m;
- while(cin >> m >> n) {
- if(m == 1) {
- for(int i = 0; i < n; ++i) cout << i;
- cout << '\n';
- continue;
- }
- int tot = pow(n, m-1);
- // cria os nós
- path.clear();
- for(int i = 0; i < tot; ++i) {
- while(e[i].size()) e[i].pop();
- // cout << "Arestas de i = " << i << endl;
- for(int j = 0; j < n; ++j) {
- e[i].emplace((i*n)%tot + j);
- // cout << (i*n)%tot + j << ' ';
- }
- // cout << endl;
- }
- dfs(0);
- reverse(path.begin(), path.end());
- path.pop_back();
- for(int x : path) {
- cout << x%n;
- }
- cout << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement