Блог пользователя dalex

Автор dalex, 10 лет назад, По-русски

Добрый вечер. Столкнулся с задачей, никак не могу решить. Выдает Wrong Answer на 2 тесте. Перепроверил код уже тысячу раз, не знаю, где ошибка.

Вкратце условие: надо поддерживать множество чисел и выводить его размер после каждой операции.
В первой строке задано число n (1 ≤ n ≤ 100000) — количество операций. В n следующих строках заданы операция (add или remove) и число (от  - 109 до 109), через пробел. Если операция — add, надо добавить число в множество, если remove — удалить его оттуда.

Код: http://paste.ubuntu.com/7857687/

  • Проголосовать: нравится
  • +10
  • Проголосовать: не нравится

»
10 лет назад, # |
Rev. 2   Проголосовать: нравится +13 Проголосовать: не нравится

Возьмем двух чуваков с одним хешом (hash) a, b. Тогда add(a) , add(b) положит их в hash, hash + step и. remove(a) удаалит нормально, поставит present[hash] = REMOVED = 2, потом при add(b) мы посмотрим present[hash] & PRESENT_MASK = 1 & 2 = 0, значит можно снова добавить b.

PS: и если это не попытка троллинга, то стоило все таки написать аблабла пишусвой сет, тещу на такой задаче. Или может быть нужно посоветовать HashSet использовать?:)

»
10 лет назад, # |
  Проголосовать: нравится +18 Проголосовать: не нравится

Что это? Попытка потроллить типичный прямой эфир? Но выглядит не похоже — слишком культурно. Ссылка на код, а не сам код на пол экрана в топике. Есть даже краткое условие задачи. Вот что отличает оранжевых от зелёных. А может это как раз пример, как надо оформлять призыв о помощи? А может я во всём ошибся?