Najważniejsza rzecz to to co napisali moi koledzy czyli rozwiązywanie zadań. Jeżeli zaś chodzi o takie typowe uczenie się to:
Do rozwiązania najprostszych zadań nie będzie Ci potrzebne nic poza podstawową znajomością języka C++. W przypadku wiosennej edycji Fraktala duża część zadań jest tego typu. W przypadku tych trudniejszych zadań odpowiedź nie jest już taka prosta.
Moim zdaniem w pierwszej kolejności konieczna jest znajomość kontenerów z STL (vector, set, map itp.) oraz funkcji z pliku nagłówkowego algorithm (z najważniejszych: sort, stable_sort, lower_bound itp.). Idąc tym tropem dobrze żebyś rozumiał zasadę działania szybkich algorytmów sortowania (np. merge sort, quick sort, moim zdaniem ten 1 jest ważniejszy). Do tego warto znać zasadę działania wyszukiwania binarnego, które jest wykorzystywane we wspomnianej funkcji lower_bound, dlaczego takie wyszukiwanie jest szybkie itp. Zalecane jest również żebyś rozumiał jak działają drzewa binarne, które są podstawą dla kontenerów set i map. Myślę, że taka wiedza jest wystarczająca, żeby rozwiązać co najmniej połowę zadań w dowolnej edycji Fraktala.