a čo je problém?
starting_index = selected_index - (selected_index % separate_per) ...(7 - (7 % 3)) = 7 - 1 = 6, na indexe 6 máš začínajúcu položku tretej skupiny [0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10]
následne od starting_index vypíšeš separate_per počet položiek. A na selected_index danej položky pridáš šípku.
veľmi jednoduchý algoritmus. Nie je na tom čo vymýšľať, len jedno blbé odčítanie zvyšku, získaného modulom.