Dość dużo tu nakomplikowałeś. Moje rozwiązanie (bez fast I/O) ma 23 linijki. Przypomnij sobie algorytm zamiany liczby dziesiętnej na dwójkową (i rozszerz te przemyślenia na zamianę liczby dziesiętnej na liczbę w systemie o podstawie p).
Ponadto nie potrzebujesz tu tablicy ani żadnej struktury danych. Koniecznie też wyłącz synchronizację wejścia/wyjścia
używając tego na początku funkcji main:
ios_base::sync_with_stdio(0);
cin.tie(0);