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

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

Всем привет.

На днях уже всплыли две темы, в которых говорилось о том, что на кф что-то считается неправильно.

Сначала был пост от NikitaMikhaylov о том, что кф неправильно считает количество символов, когда пытаешься отправить решение (там дело то ли в переводах строк, которые почему-то не учитываются, то ли в пробелах, так толком и не выяснилось).
Затем был пост от MikeMirzayanov, приспустивший с небес рейтинг tourist.

Так вот, я это к чему.

Есть задача 660D - Number of Parallelograms с Educational Codeforces Round 11. Ограничение по памяти у неё 256 мегабайт.
И есть моё решение 17255435, которое ест 263936 КБ.
Переведём в мегабайты, получим 263936 / 1024 = 257.75 мегабайт.

Итак, вопрос: что я делаю не так?

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

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

Это норм, java дарят еще сколько-то там памяти, чтобы java машину поднять и т.п.

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    Тогда надо прописывать в условии задачи отдельные ограничения ML на Java, а не заниматься подъемом ML по-тихому. Где прописано, что на Java дают ещё доп. память? Укажите пост, пожалуйста.

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

      На codeforces я такого поста не видел. Прост я знаю, что так делают на других тестирующих системах: на саратовском четвертьфинале (говорил на открытии MikeMirzayanov, но это не codeforces), на самарской тестирующей системе (у них где-то пост есть).

»
8 лет назад, # |
  Проголосовать: нравится -11 Проголосовать: не нравится

Офигительный баг, действительно, ведь должен был быть ML... Устаешь от этих постоянных багов вокруг...

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

Лучше ошибка в эту сторону (прошло решение, использующее на пару мегабайт больше), чем в другую (не прошло решение, использующее на пару мегабайт меньше).

Обычно цель авторов — проверить ограничение по памяти для решения, а не для конкретного языка.

Если поправку на язык не делать — идея решения, использующая 250 мегабайт при реализации на C++, может потребовать больше 256 мегабайт при аналогичной реализации на Java. Несколько лет назад на Codeforces так и было — любое решение на Java использовало не менее 40 мегабайт памяти.