#include <bits/stdc++.h> using namespace std; string num(long long n, string s){ if(n==0) return ""; if(n==1) return s; if(n<10){ string res=" "; res[0]=n+'0'; if(s.size()<=1) return res + s; return res+"["+s+"]"; } return num(n%9, s) + num(9, num(n/9, s)); } string triangle(long long n){ if(n==1) return "CA"; if(n==2) return "CACECAA"; string res=""; if(n&1){ res+= "2[" + triangle(n/2) + "]"; res+= "C" + num(n/2, "EC"); res+= num(n/2, num(n/2, "EA") + "E" + num(n/2+1, "C")) + num(n, "A"); return res; } res=triangle(n-1); res+= num(n-1, "CE") + "C" + num(n, "A"); return res; } int main(){ long long n; cin>>n; cout<<triangle(n); cout<< num(n, "E") <<endl; }
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 | #include <bits/stdc++.h> using namespace std; string num(long long n, string s){ if(n==0) return ""; if(n==1) return s; if(n<10){ string res=" "; res[0]=n+'0'; if(s.size()<=1) return res + s; return res+"["+s+"]"; } return num(n%9, s) + num(9, num(n/9, s)); } string triangle(long long n){ if(n==1) return "CA"; if(n==2) return "CACECAA"; string res=""; if(n&1){ res+= "2[" + triangle(n/2) + "]"; res+= "C" + num(n/2, "EC"); res+= num(n/2, num(n/2, "EA") + "E" + num(n/2+1, "C")) + num(n, "A"); return res; } res=triangle(n-1); res+= num(n-1, "CE") + "C" + num(n, "A"); return res; } int main(){ long long n; cin>>n; cout<<triangle(n); cout<< num(n, "E") <<endl; } |