Advertisement
Guest User

Untitled

a guest
Feb 25th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define forn(i, n) for (int i = 0; i < int(n); ++i)
  6. #define ford(i, n) for (int i = int(n) - 1; i >= 0; --i)
  7. #define sz(c) int((c).size())
  8. #define all(c) (c).begin(), (c).end()
  9. #define fst first
  10. #define snd second
  11. #define pb push_back
  12. #define mp(x, y) make_pair(x, y)
  13.  
  14. using ll = long long;
  15. using vi = vector<int>;
  16. using pii = pair<int, int>;
  17.  
  18. #define FILE_NAME "a"
  19.  
  20. #ifdef LOCAL
  21. #define eprintf(args...) fprintf(stderr, args), fflush(stderr)
  22. #else
  23. #define eprintf(args...) ;
  24. #endif
  25.  
  26. int m, n;
  27.  
  28. bool read() {
  29. if (scanf("%d%d", &m, &n) < 2) {
  30. return 0;
  31. }
  32. return 1;
  33. }
  34.  
  35. const int MAXV = (int)1e6 + 100;
  36. int ptr[MAXV];
  37. int g[MAXV][10];
  38. int eused[MAXV * 10];
  39.  
  40. void dfs(int v) {
  41. for (; ptr[v] < m; ) {
  42. int to = g[v][ptr[v]];
  43. putchar('0' + ptr[v]);
  44. ptr[v]++;
  45. dfs(to);
  46. }
  47. }
  48.  
  49. string solve() {
  50. int MAXM = 1;
  51. forn(i, n - 1) {
  52. MAXM *= m;
  53. }
  54.  
  55. //int edges = MAXM * m;
  56. forn(i, MAXM) {
  57. forn(j, m) {
  58. int mask = i;
  59. mask = (mask * m) % MAXM;
  60. mask = (mask + j);
  61. g[i][j] = mask;
  62. }
  63. }
  64.  
  65. forn(i, MAXM) {
  66. ptr[i] = 0;
  67. }
  68. dfs(MAXM - 1);
  69.  
  70. return "";
  71. }
  72.  
  73. int main() {
  74. #ifdef LOCAL
  75. freopen(FILE_NAME ".in", "r", stdin);
  76. freopen(FILE_NAME ".out", "w", stdout);
  77. #endif
  78. /*
  79. for (m = 2; m <= 10; m++) {
  80. ll cur = 1;
  81. for (n = 2; n <= 10; n++) {
  82. cur *= m;
  83. if (cur > (int)1e6) {
  84. break;
  85. }
  86. eprintf("m=%d, n=%d\n", m, n);
  87. solve();
  88. }
  89. }
  90. */
  91. while (read()) {
  92. auto ans = solve();//out << solve() << '\n';
  93. cout << '\n';
  94. }
  95.  
  96. #ifdef LOCAL
  97. eprintf("Time: %.10f\n", clock() * 1.0 / CLOCKS_PER_SEC);
  98. #endif
  99.  
  100. return 0;
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement