#include<bits/stdc++.h> #define ll long long using namespace std; ll n; string r(string a,ll n) { if (n==0) { return ""; } if (n==1) { return a; } if (n<=9) { if (a.size()==1) { return to_string(n)+a; } else { return to_string(n)+"["+a+"]"; } } else { return r(a,n%9)+"9["+r(a,n/9)+"]"; } } string f(ll n) { if (n==0) { return ""; } string now=""; if ((n&1)||n<4) { now=r("F",n)+r("BD",n-1)+"B"; n--; } if (n<4) { return now+f(n); } else { now+="FB2["; now+=f((n-2)/2); now+="]"; now+=r("FD",n-2); int len=(n-2)/2; string a=r("B",len)+r("DF",len-1)+"D"; now+=r(a,len); now+=r("F",len); now+=r("DB",n-3); now+="D"; now+=r("F",n-1); now+="BDBF"; now+=r("B",n-1); return now; } } signed main() { ios::sync_with_stdio(false),cin.tie(0); cout.precision(10),cout.setf(ios::fixed); cin>>n; string ans=f(n); ans+=r("D",n); cout<<ans<<"\n"; 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 | #include<bits/stdc++.h> #define ll long long using namespace std; ll n; string r(string a,ll n) { if (n==0) { return ""; } if (n==1) { return a; } if (n<=9) { if (a.size()==1) { return to_string(n)+a; } else { return to_string(n)+"["+a+"]"; } } else { return r(a,n%9)+"9["+r(a,n/9)+"]"; } } string f(ll n) { if (n==0) { return ""; } string now=""; if ((n&1)||n<4) { now=r("F",n)+r("BD",n-1)+"B"; n--; } if (n<4) { return now+f(n); } else { now+="FB2["; now+=f((n-2)/2); now+="]"; now+=r("FD",n-2); int len=(n-2)/2; string a=r("B",len)+r("DF",len-1)+"D"; now+=r(a,len); now+=r("F",len); now+=r("DB",n-3); now+="D"; now+=r("F",n-1); now+="BDBF"; now+=r("B",n-1); return now; } } signed main() { ios::sync_with_stdio(false),cin.tie(0); cout.precision(10),cout.setf(ios::fixed); cin>>n; string ans=f(n); ans+=r("D",n); cout<<ans<<"\n"; return 0; } |