PashaChemerys's blog

By PashaChemerys, 10 years ago, In Russian

Всем привет!

Вот и закончился 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.

  • Vote: I like it
  • +22
  • Vote: I do not like it