#include <cstdio>
#include <cstring>
typedef long long ll;
void r(ll n, const char *s)
{
if (n<1) return;
if (n<2)
{
printf("%s", s);
return;
}
int l=strlen(s);
if (n<10 && n*l<=3+l-2*(l==1))
{
for (int i=0; i<n; i++) printf("%s", s);
return;
}
if (n<10)
{
printf("%lli%s%s%s", n, "["+(l==1), s, "]"+(l==1));
return;
}
if (l>1 || n>1000)
for (int i=9; i>1; i--)
if(n%i==0)
{
printf("%i%s", i, "["+(n/i==1 && l==1));
r(n/i, s);
printf("]"+(n/i==1 && l==1));
return;
}
r(n%9, s);
printf("9%s", "["+(n/9==1 && l==1));
r(n/9, s);
printf("]"+(n/9==1 && l==1));
}
void b(ll n, ll m)
{
if (m<1) return;
if (m<2)
{
r(n, "C");
r(n, "EA");
printf("E");
return;
}
if (m<10)
{
printf("%lli[", m);
r(n, "C");
r(n, "EA");
printf("E");
printf("]");
return;
}
for (int i=9; i>1; i--)
if(n%i==0)
{
printf("%i[", i);
b(n, m/i);
printf("]");
return;
}
b(n, m%9);
printf("9[");
b(n, m/9);
printf("]");
}
void t(ll n)
{
if (n<1) return;
if (n<2)
{
printf("A");
return;
}
if (n<3)
{
printf("AEACA");
return;
}
ll m=(n-1)/2;
printf("2%s", "["+(m==1));
t(m);
printf("]"+(m==1));
r(m, "E");
b(m, m);
r(2*m, "AC");
printf("A");
if (n%2==0)
{
r(n-1, "E");
r(n-1, "AC");
printf("A");
}
}
int main()
{
ll n;
scanf("%lli", &n);
t(n);
r(n, "E");
r(n, "C");
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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | #include <cstdio> #include <cstring> typedef long long ll; void r(ll n, const char *s) { if (n<1) return; if (n<2) { printf("%s", s); return; } int l=strlen(s); if (n<10 && n*l<=3+l-2*(l==1)) { for (int i=0; i<n; i++) printf("%s", s); return; } if (n<10) { printf("%lli%s%s%s", n, "["+(l==1), s, "]"+(l==1)); return; } if (l>1 || n>1000) for (int i=9; i>1; i--) if(n%i==0) { printf("%i%s", i, "["+(n/i==1 && l==1)); r(n/i, s); printf("]"+(n/i==1 && l==1)); return; } r(n%9, s); printf("9%s", "["+(n/9==1 && l==1)); r(n/9, s); printf("]"+(n/9==1 && l==1)); } void b(ll n, ll m) { if (m<1) return; if (m<2) { r(n, "C"); r(n, "EA"); printf("E"); return; } if (m<10) { printf("%lli[", m); r(n, "C"); r(n, "EA"); printf("E"); printf("]"); return; } for (int i=9; i>1; i--) if(n%i==0) { printf("%i[", i); b(n, m/i); printf("]"); return; } b(n, m%9); printf("9["); b(n, m/9); printf("]"); } void t(ll n) { if (n<1) return; if (n<2) { printf("A"); return; } if (n<3) { printf("AEACA"); return; } ll m=(n-1)/2; printf("2%s", "["+(m==1)); t(m); printf("]"+(m==1)); r(m, "E"); b(m, m); r(2*m, "AC"); printf("A"); if (n%2==0) { r(n-1, "E"); r(n-1, "AC"); printf("A"); } } int main() { ll n; scanf("%lli", &n); t(n); r(n, "E"); r(n, "C"); return 0; } |
English