Zauważ, że czas 0.00 osiągają tylko programy w C, chociaż niektórym się udało uzyskać 0.01 w CPP. W C każde IO jest “szybkie” (tak, wiem, są szybkie i bardzo szybkie
).
Stawiam, że najbardziej u Ciebie spowalnie funkcja erase(), której złożoność jest prawdopodobnie liniowa względem długości stringa.
Przepisz program tak, aby nie modyfikować stringa, tylko policz ile znaków jest w poszczególnych grupach, które mają być kolejno usuwane. Następnie wypisz tylko te znaki, które mają trafić na wyjście.