Здравствуйте! Задача 736. Удаление с acmp.ru. Суть задачи: на каждой итерации из массива длины n до 5·106 удаляются элементы с индексами k, 2k, 3k и т.д. Затем все неудаленные элементы сдвигаются и операция повторяется до тех пор, пока длина массива не станет меньше k. Нужно для каждого элемента во вводе сообщить, каким по счету он уйдет.
UPD: Решено за O(q * sqrt(n)). Решение Wild_Hamster
UPD2: написал код деревом отрезков за O(n log(n))
: 0.780 с, 84 MB — на ideone.com. На acmp.ru — Memory Limit Exceeded
UPD3: написал код деревом Фенвика за O(n log(n))
: 0.480 с, 40 MB — на ideone.com. На acmp.ru — Time Limit Exceeded