#include #include struct Move { int disk; char from; char to; }; void hanoi(int n, char source, char target, char spare, std::vector& moves) { if (n == 0) { return; } hanoi(n - 1, source, spare, target, moves); moves.push_back({n, source, target}); hanoi(n - 1, spare, target, source, moves); } int main() { std::vector moves; hanoi(3, 'A', 'C', 'B', moves); for (const auto& [disk, from, to] : moves) { std::cout << "Move disk " << disk << " from " << from << " to " << to << '\n'; } }