Всем привет!
Вот и закончился Codeforces Round #261. Решая задачу 459D - Pashmak and Parmida's problem у меня возник очень интересный баг. Делал я задачу с помошью дерева Фенвика, код — 7476143. У меня был тайм лимит на 33 тесте. Долго просидев за кодом и сравнением его с чужими решениями, я так и не понял в чем проблема. Прошу обратить внимание на вот эти две строчки в моем коде:
for (i=2;i<=n;i++)
add(s[i],1);
Процедура add прибавляет единицу с позиции s[i]. Случайным образом мне пришла мысль написать вот так:
for (i=n;i>1;i--)
add(s[i],1);
Разницы казалось бы не какой, но с этой "оптимизацией" у меня — Полное решение. Причем разница в некоторых тестах одна секунда! Почему так произошло?
Вот кода для сравнения(певый — ТЛ, второй — ОК): 7476143 и 7476106.