#include <iostream>
#include <string.h>
using namespace std;
void TOH( int n , string src , string helper , string dest) {
if ( n == 1 ) {
cout << "transfer disks " << n << " from " << src << " to " << dest << endl;
return ;
}
//n-1 disks transter from src to helper using dest as helper
TOH( n- 1 , src , dest , helper) ;
cout << "transfer disks " << n << " from " << src << " to " << dest << endl;
// n-1 disks transfer from helper to dest using src as helper
TOH( n- 1 , helper , src , dest) ;
}
int main( ) {
int n = 3 ;
TOH( n , "A" , "B" , "C" ) ;
// your code goes here
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIFRPSChpbnQgbiAsIHN0cmluZyBzcmMgLCBzdHJpbmcgaGVscGVyICwgc3RyaW5nIGRlc3QpewoJaWYobiA9PSAxKXsKCQljb3V0IDw8ICJ0cmFuc2ZlciBkaXNrcyAiIDw8IG4gPDwgIiBmcm9tICIgPDwgc3JjIDw8ICIgdG8gIiA8PCBkZXN0IDw8IGVuZGw7CgkJcmV0dXJuOwoJfQoJCgkvL24tMSBkaXNrcyB0cmFuc3RlciBmcm9tIHNyYyB0byBoZWxwZXIgdXNpbmcgZGVzdCBhcyBoZWxwZXIgCglUT0gobi0xICwgc3JjICwgZGVzdCAsIGhlbHBlcik7CgkKCWNvdXQgPDwgInRyYW5zZmVyIGRpc2tzICIgPDwgbiA8PCAiIGZyb20gIiA8PCBzcmMgPDwgIiB0byAiIDw8IGRlc3QgPDwgZW5kbDsKCS8vIG4tMSBkaXNrcyB0cmFuc2ZlciBmcm9tIGhlbHBlciB0byBkZXN0IHVzaW5nIHNyYyBhcyBoZWxwZXIgCglUT0gobi0xICwgaGVscGVyICwgc3JjICwgZGVzdCk7Cn0KCmludCBtYWluKCkgewoJaW50IG4gPSAzOwoJVE9IKG4gLCAiQSIgLCAiQiIgLCAiQyIpOwoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJcmV0dXJuIDA7Cn0=