Всем привет! Я решал задачу 825F - String Compression, отослал решение, но сразу же захотел отослать немного другое решение где я убрал else
Т.Е. в первом решении лишь иногда выполнялась 60 строка, а во втором она выполнялась всегда. В итоге не зашло именно 1 решение!!! ТЛ 23, а второе зашло 1933мс из 2с. Я подумал что это просто баг серверов и отослал оба решения еще раз, но все так и осталось (первая задача ТЛ, а вторая уже 1918мс)
Первая попытка 58855834 ТЛ 23
Вторая попытка 58855845 AC
я считаю что 100+ мс это относительно много, неужели else на самом деле может замедлить решение?
А почему ему не замедлить? Процессору на вычисление ветки ресурсы пришлось тратить. Только ваше решение замедляется ещё больше из-за вычисления функции f, которое приводит к тройному циклу и пограничному времени. Поменял в вашем коде способ вычисления f, получил ускорение в 2 раза Тыц — 967 мс Вот ваш код с else Тыц2 — 1029 мс
Ну соптимайзить время можно было многими способами) к примеру убрать define int long long, даже если эта та самая "Процессора на вычисление ветки ресурсы", не слишком ли много? 100+ мс просто если написать else где это необязательно.. Никогда бы не подумал что такое может быть