#include <bits/stdc++.h> using namespace std; const long long MAX_MALY = 6; const long long N = 1000001; long long n; string powiel(long long k, string s) { if (k == 0) { return ""; } if (k == 1) { return s; } string tmp = ""; if (k < 10) { char c = k + '0'; tmp.push_back(c); if (s.size() == 1) { tmp.append(s); } else { tmp.append("[" + s + "]"); } } else { tmp.append(powiel(k % 9, s)); tmp.append(powiel(9, powiel(k / 9, s))); } return tmp; } void rzad(long long n) { cout << powiel(n - 1, "CE"); cout << "C"; cout << powiel(n, "A"); } void maly(long long n) { cout << "CA"; for (int i = 2; i <= n; i++) { rzad(i); } } void tr(long long n) { if (n <= MAX_MALY) { maly(n); return; } long long init_n = n; if (n % 2) { n--; } cout << powiel(n, "C"); n -= 2; cout << "A"; cout << powiel (n / 2, "F"); string rzad_trapezu = powiel(n / 2 - 1, "BF"); rzad_trapezu.append("B"); rzad_trapezu.append(powiel(n / 2, "D")); cout << powiel(n / 2, rzad_trapezu); cout << powiel(n, "EA"); cout << "2["; tr(n / 2); cout << "]"; cout << powiel(n, "E"); cout << "EA"; cout << powiel(n + 1, "CA"); if (init_n % 2) { rzad(init_n); } } void koniec(long long n) { cout << powiel(n, "E"); } int main() { ios_base::sync_with_stdio(0); cin >> n; tr(n); koniec(n); cout << endl; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | #include <bits/stdc++.h> using namespace std; const long long MAX_MALY = 6; const long long N = 1000001; long long n; string powiel(long long k, string s) { if (k == 0) { return ""; } if (k == 1) { return s; } string tmp = ""; if (k < 10) { char c = k + '0'; tmp.push_back(c); if (s.size() == 1) { tmp.append(s); } else { tmp.append("[" + s + "]"); } } else { tmp.append(powiel(k % 9, s)); tmp.append(powiel(9, powiel(k / 9, s))); } return tmp; } void rzad(long long n) { cout << powiel(n - 1, "CE"); cout << "C"; cout << powiel(n, "A"); } void maly(long long n) { cout << "CA"; for (int i = 2; i <= n; i++) { rzad(i); } } void tr(long long n) { if (n <= MAX_MALY) { maly(n); return; } long long init_n = n; if (n % 2) { n--; } cout << powiel(n, "C"); n -= 2; cout << "A"; cout << powiel (n / 2, "F"); string rzad_trapezu = powiel(n / 2 - 1, "BF"); rzad_trapezu.append("B"); rzad_trapezu.append(powiel(n / 2, "D")); cout << powiel(n / 2, rzad_trapezu); cout << powiel(n, "EA"); cout << "2["; tr(n / 2); cout << "]"; cout << powiel(n, "E"); cout << "EA"; cout << powiel(n + 1, "CA"); if (init_n % 2) { rzad(init_n); } } void koniec(long long n) { cout << powiel(n, "E"); } int main() { ios_base::sync_with_stdio(0); cin >> n; tr(n); koniec(n); cout << endl; return 0; } |