// Latihan bergaya OSN, Bab 06, soal 2 -- pembahasan. // // Rekursi tiga baris: pindahkan n-1 cakram ke tiang bantu, pindahkan // cakram terbesar ke tujuan, lalu pindahkan n-1 cakram itu ke tujuan. #include using namespace std; void pindah(int n, char asal, char bantu, char tujuan) { if (n == 0) return; pindah(n - 1, asal, tujuan, bantu); cout << asal << " " << tujuan << "\n"; pindah(n - 1, bantu, asal, tujuan); } int main() { int n; cin >> n; long long banyak = (1LL << n) - 1; cout << banyak << "\n"; pindah(n, 'A', 'B', 'C'); return 0; }