递归真的太好看辣
拿到新题还是不太会想到
以及终于断断续续做完codevs白银天梯!
#include<bits/stdc++.h>
using namespace std;
template <typename T> void read(T &x){
x=0;int f=1;char ch=getchar();
for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1;
for(;isdigit(ch);ch=getchar())x=(x<<1)+(x<<3)+ch-'0';
x*=f;
}
int n,ans;
bool p=true;
void dfs(int dep,char a,char b,char c){
//cout<<dep<<" "<<a<<" "<<b<<" "<<c<<endl;
if(dep>0){
ans++;
dfs(dep-1,a,c,b);
if(!p) cout<<dep<<" from "<<a<<" to "<<c<<endl;
dfs(dep-1,b,a,c);
}
}
int main(){
read(n);
dfs(n,'A','B','C');
p=false;
cout<<ans<<endl;
dfs(n,'A','B','C');
return 0;
}