Mówiąc w skrócie, musisz zaimplementować prostą wersję BigIntów (czyli liczb całkowitych o nieograniczonym zakresie). Problem polega na tym, że typy zmiennych służące do przechowywania liczb całkowitych mają ograniczony zakres, który nie będzie w stanie pomieścić tak ogromnych liczb.
Najprostsze co przychodzi mi do głowy to wczytanie tych liczb (np. z wejścia) jako string i przedstawienie je w postaci wektora cyfr (np. std::vector<int>). Następnie, trzeba zaimplementować funkcję, która z dwóch takich wektorów utworzy jeden, który będzie przechowywał wynik mnożenia (algorytm identyczny jak przy mnożeniu "w słupku"). Następnie wynikowy wektor możesz z powrotem skonwertować do stringa zawierającego ciąg cyfr i, w zależności od polecenia do zadania, na przykład wypisać na wyjście.