А почему в одном файле ты используешь опшинал чейнинг, а в остальных нет?
Впрочем, там, где ты его используешь (как и 90% твоих проверок), это бессмысленная загрузка цпу.
Зачем ты перед каждым вызовом map делаешь проверку на длину массива?
Почему ты вместо форыча используешь мап?
По какой причине ты мутируешь массивы в компоненте? И вообще по какой причине ты их трогаешь, когда это не стейты?
И последнее, но самое вкусное:
Честно, без понятия какие задачи на олимпиадах, но подозреваю они +- аналогичны задачам на сайтах с задачами, аля codewars и его аналоги: https://habr.com/ru/post/414009/