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

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

Этот пост более не актуален, он значительным образом устарел. Вам следует прочитать пост https://mirror.codeforces.com/blog/entry/121114.

Позже вы познакомитесь с правилами соревнований Codeforces, которые будут отличаться от правил ACM-ICPC, TopCoder, GCJ и, я надеюсь, немного разнообразят контесты. Большая часть официально-проводимых соревнований будет проходить именно по этим правилам, хотя будут и более традиционные контесты. Например, Codeforces Beta Round #1 будет проходить по старым-добрым правилам ACM-ICPC (имеются ввиду правила подсчета результатов — так как у нас соревнование личное, покороче, да и разрешенных языков поболее). Пока тестирование будет проводиться под ОС Windows, но в будущем это может и измениться, благо система поддерживает тестирование на разных платформах даже в рамках одного контеста.

В настоящий момент система сконфигурирована на поддержку следующих языков (для каждого указана строка компиляции и/или запуска):

  1. GNU C++ 4
    g++.exe -static -DONLINE_JUDGE -lm -s -x c++ -Wl,--stack=268435456 -O2 -o {filename}.exe {file}

  2. GNU C++11 4
    g++.exe -static -DONLINE_JUDGE -lm -s -x c++ -Wl,--stack=268435456 -O2 -std=c++11 -D__USE_MINGW_ANSI_STDIO=0 -o {filename}.exe {file}

  3. GNU C 4
    gcc.exe -static -DONLINE_JUDGE -fno-asm -lm -s -Wl,--stack=268435456 -O2 -o {filename}.exe {file}

  4. MS VS C++
    cl /W4 /F268435456 /EHsc /O2 /DONLINE_JUDGE {file}

  5. Free Pascal 2
    -n -O2 -Xs -Sgic -viwn -dONLINE_JUDGE -Cs67107839 -Mdelphi -XS {file} -o{filename}.exe

  6. Delphi 7
    dcc32 -Q -$M1048576,67107839 -DONLINE_JUDGE -cc {file}

  7. C# Mono 2
    dmcs -define:ONLINE_JUDGE -o+ -out:{filename}.exe {file}

  8. C# .NET
    csc.exe /o+ /d:ONLINE_JUDGE /r:System.Numerics.dll /out:{filename}.exe {file}

  9. Java 6, 7
    javac -cp ".;*" {file}
    и
    java.exe -Xmx512M -Xss64M -DONLINE_JUDGE=true -Duser.language=en -Duser.region=US -Duser.variant=US -jar %s

  10. Ruby
    ruby.exe %s

  11. Python 2, Python 3
    python.exe %s

  12. PHP 5
    php.exe -n -d ONLINE_JUDGE=true -d display_errors=Off -d error_reporting=0 %s

  13. Haskell GHC 7
    ghc --make -O %s

  14. D
    dmd -L/STACK:268435456 -version=ONLINE_JUDGE -O -release -inline -noboundscheck {file}

  15. OCaml
    ocamlopt nums.cmxa str.cmxa -pp camlp4o -unsafe -o {filename}.exe-ocaml {file}

  16. Scala
    As Java

  17. JavaScript V8
    d8 {file}

Не гарантируется, что задачи будут иметь решения на каждом из представленных языков (особенно это касается скриптовых). Вероятно, позже я введу поправочные коэффициенты по времени работы для некоторых из языков. Версии со знаком плюс обозначают, что тестирующая система может использовать и более старшие версии. Если есть конструктивные предложения по изменению строк компиляции или запуска – пишите в комментарии.

Так же хочется отметить, что кроме стандартных вердиктов вам может еще прийти «Отказ тестирования», что обычно означает, что ваше решение неудалось запустить или оно совсем как-то неожиданно упало. Например, если в Delphi объявить сверхбольшой массив, то компилятор благополучно скомпилирует код, но в результате получится некорректный win32 exe-файл. Попытки с вердиктами «Ошибка компиляции», «Отказ тестирования», «Сбой тестирования» (и подобное) игнорируются при подведении результатов.

Кроме того обратите внимание, что задачи будут доступны как на русском так и английском языках.

Вроде все, до встречи на Codeforces Beta Round #1.

UPD: Добавлен чистый C (компилятор gcc).

UPD 2: Добавлены Haskell GHC 6.12 и F# 2.0

UPD 3: Обновлены версии многих компиляторов. В настоящий момент используются следующие версии:

  • Mono C# compiler version 3.2.3
  • DMD32 D Compiler v2.064.2
  • Delphi 7 [Borland Delphi Version 15.0]
  • Free Pascal Compiler version 2.6.2
  • MinGW g++.exe (GCC) 4.9.2
  • Haskell Glorious Glasgow, version 7.6.1
  • Java 6 javac 1.6.0_45
  • Java 7 javac 1.7.0_72
  • Java 8 javac 1.8.0_25
  • Ocaml ocamlopt 4.00.1
  • Perl v5.12.2
  • PHP 5.3.8
  • Python 2.7.8
  • Python 3.4.1
  • Ruby 2.0.0p353
  • Scala compiler version 2.11.1
  • MS VS C++ 2010
  • JavaScript V8 3.23.0
  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Удивляет отсутствие поддержки компилятора С. Радует наличие Python.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    У меня вот вопрос (совершенно без наезда, чистый интерес). Чего не хватает в с++ компиляторах человеку, пишушему олимпиадную задачу на чистом C? variadic macroses? variable length arrays? 
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      В любом случае я добавил gcc.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Обычно GNU C/C++ компиляторы ходят парой и странно увидеть только один из двух.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Я удивляюсь людям, которые решают олимпиадные задачи на чистом C. Вспоминая свои паскалевские времена, без STL-евских string, vector, set, map это такой геморрой.
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Ну string все-таки в Паскале есть :)
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          В Турбо Паскале не было :)
          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            В смысле, строки были, но фиксированной максимальной длины.
            • 14 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится

              <sarcasm> Ты бы еще сказал, что там не было basic_string< pair<double, int> > 

              </sarcasm>

              Вообще-то да. Помню задачу про треугольники с саратовского ЧФ, где были строки в 300 символов и нужна была сортировка. После этого я принял окончательное решение олимпиады на паскале не писать

    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      variadic macros & VLA де-факто зависят не от языка (Си или Си++), а от компилятора (у GNU есть, у MS нету).

      а вот Си++ к сожалению нельзя написать y = (k ? sin : cos) (x); -- компилятор не сможет решить какие функции вызвать

      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Я согласен, что все, конечно, зависит от конкретных реализаций и ключей компиляции, но все же... Обе вышеперечисленные вещи есть в стандарте C99, и их нет в текущем стандарте С++. Майкрософтовский С компилятор вообще не поддерживает С99, так что о нем и говорить особо нечего, а вот поведение gcc/g++ будет разным в зависимости от ключей компиляции g++, например, таким:
        http://codepad.org/rAjUMr2i  (это g++)
        Я обычно пишу соревнования на стандартном с++, не используя расширения, поэтому на компилятор обычно обращаю внимание только при отсылке (если его надо выбрать).

        А за пример спасибо, интересно.

        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Ключей, которые запрещают gcc компилировать отклонения от стандарта, на олимпиадах никто не ставит, так что разговор ни о чём.
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        y = ( k ? sin : cos ) ( x ); // Так в C++ нельзя
        y = ( k ? ( double (*)( double )) sin : ( double (*)( double )) cos )( x ); // А вто так - можно
        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          y = ( k ? &sin : &cos ) ( x );
          так можно в С++
          • 15 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится

            И каким же С++ транслятором можно так писать?

            Comeau говорит о этом коде следующее:

            Comeau C/C++ 4.3.10.1 (Oct 6 2008 11:28:09) for ONLINE_EVALUATION_BETA2
            Copyright 1988-2008 Comeau Computing. All rights reserved.
            MODE:strict errors C++ C++0x_extensions

            "ComeauTest.c", line 10: error: cannot determine which instance of overloaded
            function "sin" is intended
            cout << (k? &sin : &cos) (x);
                               ^

            "ComeauTest.c", line 10: error: cannot determine which instance of overloaded
            function "cos" is intended
            cout << (k? &sin : &cos) (x);
                                         ^

            2 errors detected in the compilation of "ComeauTest.c".

          • 15 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится

            Эти строки эквивалентны (имя функции является указателем на неё):
            y = (k ? sin : cos)(x);
            y = (k ? &sin : &cos)(x);
            Да, такие конструкции возможны в C++. Но при перегрузке функций, компилятор без дополнительной информации не может определить, какую из них использовать:
            float sin(float x);
            double sin(double x);
            long double sin(long double x);

            Если же перегрузка функций не используется, то эта конструкция не вызовет ошибки.

            Если мспользуется шаблонная функция, то возможна более короткая запись:
            c = (k ? min<int> : max<int>)(a, b);
            вместо варианта с приведением типа.

            PS: когда я писал, что нельзя, я имел в виду VS 2005.

            • 15 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              Точно! Для нестыковки стоит использовать пространство std и
              y = ( k ? std::sin : std::cos ) ( x );
              уже не компилируется.
        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Я знаю, что можно. Но громодзкость делает снижает применимость этого приема.
          • 15 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится

            Чтобы не писать так громоздко, можно сделать так:

            typedef double (*df)(double);

            y = (k ? (df)sin : (df)cos)(x);

        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Еще один вариант:

          y = (k ? sinl : cosl) (x);

          • 15 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            > y = (k ? sinl : cosl) (x);

            Гм. А что, такая ситуация *так часто* встречается, что есть необходимость в сокращенной конструкции?
            • 15 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится

              Она не сокращенная. Просто С++ компилятору не хватает ума, чтобы скомпилировать без подсказки.

    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      UPD: В C99 появилась перегрузка тригонометрических функций по аргументу (tgmath.h), так что проблемы могут быть и там...
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Вот еще вспомнил. В GNU C можно делать вложенные функции (почти как в Паскале, только удобнее), для С++ это не поддерживается.

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

      А порой иногда не хватает компилятора С++ :D

    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Вот еще вспомнил. В GNU C есть вложенные функции (как в Паскале, только удобнее), для Си++ это не поддерживается
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А можно уточнить версию ruby? Просто при 1.8 -> 1.9 все же внесли существенные изменения в API стандартных классов. Также может повлиять на скорость работы решения. В 1.9 все же YARV, а не чистый интерпретатор.
15 лет назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится
Круто! Ждём бета-контеста.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Для С++ было бы не плохо иметь библиотеку Boost http://www.boost.org/
Это реально?
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Ради интереса, что вам нужно, что есть в Boost, но нет в tr1?
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    скорей всего нет...
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    А чем boost будет в данном случае отличаться от миллиона других библиотек, не входящих в состав стандартных библиотек языков? Почему бы тогда и их не добавить? 
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
C# моно? А почему не MS? было бы здорово взять 2010 RC. Там наконец то встроенная длинная арифметика есть. Экспресс версия студии бесплатная, так что тут проблемы вроде нет.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    +1, и да, лучше взять framework поновее. Потому что, когда нет Set'а, то это грусть.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Такой вот код он компилирует: HashSet<int> intSet = new HashSet<int>()
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        И все-таки почему не MS C#?
        И компилирует ли он что-то типа

        var a = new int[];
        var q = from v in a select v;

        ?
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Почему ключ no-asm для GCC, но для MSVC, FP, Delphi нет такого?
15 лет назад, # |
  Проголосовать: нравится -12 Проголосовать: не нравится
Есть такая идея: предоставить каждому пользователю свое личное пространство для хранения своих модулей. Например, я заливаю на сервер модуль с длинной арифметикой arithm.hpp, после чего у меня появляется возможность его инклудить:
#include "my/arithm.hpp"
  • 15 лет назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится
    Идея не очень.

    Во-первых, тестирование производится на разных машинах, поэтому возникнут сложности с масштабированием и поддержанием доступности этих ваших модулей на всех компьютерах.

    Во-вторых, такую возможность если и добавлять, то для всех языков. По-моему, слишком большой геморрой. Надо будет для каждого языка специфицировать, где что лежит, как что подключить и т.п. Зачем делать систему слишком запутанной в угоду сомнительным удобствам?

    В третьих, ну неужели у вас так много ценного вашего кода, который вы хотели бы использовать на соревнованиях и по каким-то убеждениям не можете скопировать в код основной программы?
  • 15 лет назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится
    Миш, может стоит написать, какие в этой системе бывают вердикты, и ссылочку какую-нибудь дать на правила ACM? Просто, судя по простыне разрешенных языков, аудитория у контестов предполагается широкая, т.е. будут участвовать люди, к ACM отношения не имеющие.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      В тексте дал ссылку на правила. Про вердикты тоже, пожалуй, верно.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Если у меня еще не развился склероз, или я не отстал от жизни, то вроде бы по правилам ACM использование prewritten code запрещено вообще.  Кстати, оно запрещено еще во многих соревнованиях, но об этом в последнее время стали забывать
    • 15 лет назад, # ^ |
        Проголосовать: нравится +12 Проголосовать: не нравится
      На TopCoder и GCJ можно пользоваться prewritten code сколько угодно. Под правилами ACM в данном случае скорее стоит понимать схему ранжирования команд, правила зачета решений, правила начисления штрафного времени и т.п., а перечень того, что можно использовать на соревнованиях, неодинаков даже в рамках ACM ICPC (пример: на NEERC никакой литературой пользоваться нельзя, а на финале доступен team reference). А на online-соревнованиях, которые используют правила ACM (Snarknews Series, например) и на которых запрещено использование prewritten code, нету никаких четких механизмов контроля за этим. Это вообще отдельная тема для обсуждения, потому что совершенно непонятно, как доказать, например, что код был скопирован, а не быстро перебит с бумажки:)
      • 15 лет назад, # ^ |
          Проголосовать: нравится +12 Проголосовать: не нравится
        Я просто напомнил, что prewritten code - это распространенная практика только в части соревнований. И идея хранения своих модулей может не соответствовать правилам контестов, проводимых здесь.
        А насчет механизмов контроля.. Тут каждый решает сам для себя, отсутствие этих механизмов еще не повод нарушать правила.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Для Java при запуске не выставляется стек. Должно быть так:
java.exe -Xmx256M -Xss<размер стека> -jar %s
Например:
java.exe -Xmx256M -Xss64M -jar %s
Здесь, правда, возникает проблема - при такой командной строке программа, вообще говоря, может использовать больше чем 256 МБ памяти (но только в стеке). Но выставлят стек надо в любом случае, по дефолту он очень мал.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Есть же известный трюк с запуском Thread-а
    • 13 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится

      Известный трюк сильно platform-dependent

    • 6 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Я понимаю, что прошло уже почти 10 лет и стек на джаве за это время выставили, но на плюсах тоже работает этот же трюк.

      51060049 (падает из-за переполнения стека) vs 51060029 (выводит какие-то числа)

15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Жалко на Top Coder Нету того же Delphi :)
Так как я пишу все олимпиады в основном именно на нём :) (SNWS, Neerc ...)
А вот тут за это спасибо! :) А то бы как бы я писал codeforces #Beta 1,без любимого паскальчика :)
Правда иногда приходится юзать и STL :(((
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Кстати, а как теперь паскалисты массив сортируют?
    • 15 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится
      Лично я quicksort пишу (уходит секунд сорок). Не знаю, есть ли встроенная функция.
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Встроенной нет.

        Но лично в Free Pascal'е в папке demo/text есть его реализация.

15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Под какой ОС проводятся запуск решений?

Версия GCC -- mingw или нет (mingw содержит ряд багов, которых нет в линуксовой версии glibc)?

15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Паскалисты пишут свой Qsort - за 1-1,5 минуты :) или меньше! %:)
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Все сам, своими руками =)
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    За сколько паскалисты пишут свой std::set? :о)
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Ну HashSet они пишут достаточно быстро, потому как это не сложно, а вот TreeSet, я думаю, большинство из пишущих на паскале вообще не реализуют. Потому что самое простое сбалансированное дерево - рандомизированное декартово - писать около получаса. Уж скорее они как-нибудь по-другому задачу решат, чем будут сбалансированное дерево писать.
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Ты прав. Лично я если уже очень нужно могу Set на си++, но обычно в задаче можно обойтись Hash,который реализуется стандартным способом очень быстро. При этом как ожидается он работает быстрее чем Set :) O(1) всё таки :-P
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Имхо, про полчаса вы загнули. Для рандомизированного бинарного дерева что нужно? Структура с узлом, две процедуры поворота, и процедура вставки. Итого строк 40-50. А полноценное АВЛ-дерево получается добавлением процедуры балансировки, строк десять.

        Вот если нужно еще и удаление... тогда да, придется попотеть

      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        wut? Декартово дерево пишется минут за 10.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Определена ли на сервере соревнований константа  ONLINE_JUDGE как на сайте acm.sgu.ru?
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
I'm not sure that the Python interpreter is actually 2.6. I get runtime error every time I try to import the collections module. Could you please look into the matter? Thanks.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
There are so many switches, which are passed to GNU C++ 4 compiler. Is there any page, which describes what each one of them does?

And why C++ and C are compiled in the exact same way?
15 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Тут вопрос возник в связи с непонятками с вводом/выводом и всякими %lld. gcc/g++ имеются ввиду mingw'шные что ли? Тогда, мне кажется, надо это явно указать. mingw не использует gnu libc, поэтому возможны и ошибки компиляции и вот такие казусы с выводом у людей, использующих "настоящий" gcc.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Да, надпись "GNU C++" вводит в заблуждение. Сегодня из-за %lld не смог сдать задачу C. Если бы использовал VC++ или cout, то сдал бы с первой попытки.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Mike, you've said that you are going to install Haskell. It is a very good intention, but I (and I think many others) would appreciate adding F# also (see http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/release.aspx , there are F# packages for many platforms). With the come of Visual Studio 2010 F# becomes accessible better than Haskell I think. What do you think about it?
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Будьте добры, объясните нубу, как использовать в Delphi "-DONLINE_JUDGE"?
  • 15 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Как-то так, вроде:
      {IfDefONLINEJUDGE}
     WriteLn('Debugoutput');
      {EndIf}
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Ой, что-то с форматированием
    {IfDef ONLINE_JUDGE}
    WriteLn('Debug output');
    {EndIf}
    • 14 лет назад, # ^ |
      Rev. 4   Проголосовать: нравится 0 Проголосовать: не нравится
      Конечно, это директивы, а не комментарии, поэтому выглядеть это будет несколько иначе:

14 лет назад, # |
  Проголосовать: нравится +15 Проголосовать: не нравится
I suggest to use "ghc --make -O %s". This will allow GHC to resolve package dependencies.
At the moment, importing "Data.Map" produces compile error, because Map is in containers package.

  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Fixed, thank you!
    • 14 лет назад, # ^ |
        Проголосовать: нравится +12 Проголосовать: не нравится
      "There are plans to add Haskell." may be removed
    • 14 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
      The default stack size in ghc is 8mb, it's too small to fit some algorithm problems require like 100k levels recursion. So is there any chance to increase this limit to like 256mb(like default setting of g++ here)?

      to increase stack space size, you just have to pass "RTS" switches to executable file, leaving compiling command line unchanged.

      compile: ghc --make -O program.hs
      running: program.exe +RTS -K256m -A8m -RTS

      here -Ksize sets the maximum stack space size, the default value is 8mb, it's not reserved memory space, and won't affect overall performance.

      and -Asize sets the cache size of GC, it's a reserved space to speed up GC, the default value is 128k, and quite small for data structure problems here (via profiling I found my program spends more than 80% of running time on GC when solving a standard data structure problem here).
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        If you feel it's difficult to set the running params, you can set the environment variable as well.
        on *nix, it's simple, and you can leave the judge system setting untouched.
        export GHCRTS="-K256m -A8m"

        I guess it's also quite easy on Windows.
    • 10 лет назад, # ^ |
        Проголосовать: нравится +11 Проголосовать: не нравится

      same issue as bjin. the stack size of Haskell is too small to solve many large-scale-data problems.

      could u pls make it larger?

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Why Perl is not allowed ?
I don't know to whom should I request the same.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
I would also like you to see this
http://mirror.codeforces.com/blog/entry/405
14 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Could we possibly have Clojure added to the languages? 

It runs on the JVM so you could download the clojure.jar and clojure-contrib.jar jars (Clojure 1.1 is the current version) and run programs with

java.exe -classpath "clojure-contrib.jar;clojure.jar" clojure.main %1

I will help test it if you like.

It would be a lot more fun for me and other Clojure programmers.  There were twice as many of us who qualified for GCJ this year as there were F# programmers.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    That would be great.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    While only Clojure? What about Scala?
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    +1 for last Google AI Challenge was won by LISP-written bot.

    Though we should note that after adding python and other interpreted languages we may expect complains that interpreters are not fast enough, while time limits are the same for them and for C-programmers.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Is it possible to change the C# compiler to using dmcs.exe so that we can write C# 4.0 code?

According to this page: http://mono-project.com/CSharp_Compiler, the gmcs compiler only targets the 2.0 runtime. 

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Using the vector package, I was able to speed up a Haskell solution of the CF25-C from 12 sec. to 1 sec. Unfortunately, the package is not installed on the server. Since the package optimizes array operations, it would allow to solve many DP-like problems in Haskell.

May I ask to install it? There are two steps:
1) Download/install the package manager (cabal.exe or cabal-install.tar.gz).
2) run "cabal install vector" under the "judge" user account.
My solution of the CF25-C can be used for testing.

It would also be nice to have parser-combinators and regular expressions (but not that important):
cabal install parsec
cabal install regex-posix

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
i dont understand how to check and what does it mean by 
cl /W4 /F268435456 /EHsc /O2 /DONLINE_JUDGE %1

i used codeblock software and 1st time i submitted by selecting GNU C++ as i did before, but i got WA, then i select MS C++, bt also got WA... then what compiler i will select? :'(
  • 14 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    Rather than switching compilers, why not fix your solution? Do you understand what WA means?
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Как откомпилировать с++ файл?
Пишу строку g++.exe -DONLINE_JUDGE -fno-asm -lm -s -x c++ -Wl,--stack=268435456 -O2 -o solve.cpp, но не компилирует :( Почему ?
  • 14 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится
    g++.exe -DONLINE_JUDGE -fno-asm -lm -s -x c++ -Wl,--stack=268435456 -O2 -o solve.exe solve.cpp
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Аааа ! Он тут компилирует и запускает после компиляции?
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Почему нету Perl  в языках программирования?
  • 14 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится
    Лично я против Perl, т.к. человеку, который не знает Perl будет сложно взламывать перловые решения.

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

      Тогда может дружно уберем F#, Ruby, Haskell, Python... ? не все же знают их...

      ерунда короче.

      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Ну F# можно смело убирать, всё равно все посылки на нем уже давно получают RE1
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Напишите следующее хотя бы на одном языке из перечисленных.
        • 14 лет назад, # ^ |
          Rev. 5   Проголосовать: нравится 0 Проголосовать: не нравится
          Чтобы написать "следующее" нужно времени гораздо больше, чем дается на контест. Во время контеста нужно сильно постараться, чтобы успеть написать такое.
          Если же использовать автоматические обфускаторы, то можно и на других языках получить не меньший ужас.

          http://ld.hackerdom.ru/b/?p=49 - нормально компилирующийся код на C++.


          p.s. у меня почему-то едет форматирование на этом комментарии, либо пропадает текст.
          • 14 лет назад, # ^ |
              Проголосовать: нравится -7 Проголосовать: не нравится
            Посмотрел код с codejam. Действительно программы на Perl зачастую довольно понятны. Но на мой взгляд все-таки надо отделить C++/Java/Pascal комнаты от остальных. 
          • 14 лет назад, # ^ |
              Проголосовать: нравится +8 Проголосовать: не нравится
            Обфусцировать, кстати, не выгодно никому. Одна из вещей, чем мне нравится codeforces, так это тем, что взламывая соперника ты почти наверняка не гадишь ему, причем зачастую ты ему даже помогаешь.
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Я был бы не против разнообразия разных языков на CF если бы решать было бы выгоднее чем взламывать, но, временами, это не так.
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Я бы ещё добавил, что тот, кто пишет не на Java или C++ (или даже, о ужас, C), - сам себе злобный буратино. На ACM-то ведь ничего другого не будет.
          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Поэтому, я считаю, что люди, пишушие на экзотике, имеют другие цели (например, изучать новый язык на интересных задачах). Поэтому надо разделить комнаты на тех, кому интересно и тех, кто тренируется. Предполагаю, что будет также интересен отдельный рейтинг для тех, кто пишет на экзотических языках. В топ они выходят редко, однако, среди подобных они лучшие и вполне заслуживают отдельного внимания. Хотя это уже сложно технически.
          • 14 лет назад, # ^ |
              Проголосовать: нравится +21 Проголосовать: не нравится
            Словно на контестах ACM ICPC свет клином сошёлся.

            К примеру, есть такая прослойка людей "уже не студенты", которым остаётся писать только TopCoder / Codeforces / TCO / Google CodeJam / Facebook HackerCup. Многие из них вполне не против использовать для решения задач свой любимый язык (при этом любимый - далеко не обязательно C++ или Java, хотя многим в это и не верится :).
            • 14 лет назад, # ^ |
                Проголосовать: нравится +8 Проголосовать: не нравится
              Это-то понятно, но вот, например, на TopCoder ведь тоже всего четыре языка. (Или даже три, четвёртый ещё не прикрутили?)
      • 14 лет назад, # ^ |
          Проголосовать: нравится +9 Проголосовать: не нравится
        Они все хоть немного читабельны
        А про перл есть известная шутка, что это единственный язык по которому нельзя понять - взяли md5 от программы или это сама программа
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      По сложности Perl не сложнее C++ или python.
      Другое дело, что написать нечитаемый код можно на любом языке, но на Perl сделать это проще.
      Однако [не хочу устроить холивар, мнение лично мое]:
      1. Perl более производительный, чем другие скриптовые языки;
      2. регэкспы и хэши в Perl гораздо удобнее для использования.

      p.s. Действительно сложнее взламывать - это haskell или J... Код на языке J (не мой), складывающий все натуральные меньшие 1000, делящиеся на 3 или 5.
      [code]+/~.(3*i.334),5*i.200
  • 11 лет назад, # ^ |
      Проголосовать: нравится -8 Проголосовать: не нравится

    Perl появился в языках программирования. Спасибо!! )

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А какая именно версия GСС 4 сейчас используется? Хочется начать пробовать фичи C0x в олимпиадном программировании.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Пожалуй, стоит обновить пост - F# просто исчез.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Hello. I have some problems with a compiler. I use Linux and solve some problems of Codeforces Beta Round #65 (Div.2). I compile my programs with keys:
-Wall --pedantic
And my gcc (gcc version 4.4.5 (Debian 4.4.5-8)) not give any errors. But when I posted my program here (on GNU C) it says "Runtime error on test 1".
Program works correctly and take right answers. You can see code here: http://pastebin.com/jhec4ixB
Thanks for your attention.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Isn't there any chance that you add csc compiler,.Net compiler, for C#?I observe that  you already use .Net for F#.
And C# mono is much slower that csc.It is even slower than java(by a 2x factor)
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Is it possible to change the judge such that it supports %lld? I did not understand what's wrong with my solutions at the last contest and only realised the error at the last minute :(
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    AFAIK,%lld is available with MS VC++.
    It isn't  available with g++, because it is MinGW g++,which not support this identificator
14 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится
А скоро будет поддержка питон 3.1? Было бы очень хорошо
  • 14 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    +1 за Питон-3

    • 14 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +1 Проголосовать: не нравится

      Мало того, что этот комментарий не ушел в минус, так он еще и плюсов набрал больше, чем оригинал. Кто-нибудь может внятно обьяснить, зачем нужны эти +- у каждого сообщения. Больше всего интересует мнение тех, кто плюсовал второй комментарий и не плюсовал первый (хотя возможно это первый 4 раза заминусен, в чем я сомневаюсь, если честно).

      UPD. Статистика вдруг начала резко меняться. Для тех кто пропустил: у первого сообщения было +4, у второго +8.
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        видимо сыграл свою роль авторитет Дениса Кириенко :)
        P.S. сам не голосовал за комменты
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    А какие преимущества вам бы это дало при решении задач?
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Во-первых, питон-2 более не развивается и бессмысленно дальше держаться за питон-2. Рано или поздно придется делать поддержку питон-3.

      Во-вторых, некоторые вещи в питон-3 сделаны более правильно, нежели в питон-2. Например, целочисленное деление сделано отдельным оператором (как в Паскале) и не зависит от типа операндов (как с Си). 

      На самом деле, особой разницы нет, если хорошо знать полдюжины основных отличий, но во-первых, не все их знают, во-вторых, если привык писать на версии 3, то постоянно думать о совместимости кода с версией 2 не хочется.
      • 12 лет назад, # ^ |
          Проголосовать: нравится +1 Проголосовать: не нравится

        Оставить обе версии (2.х и 3.х) было бы самым правильным решением

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Здравствуйте. Куда делся F#?

Если F# убрали в связи с глюками компилятора при работе на Mono, то можно вместо него добавить OCaml [1], который мало чем от F# отличается и является довольно популярным языком для решения задач в системе Sphere Online Judge [2] (как видно в [3]).

Ссылки
  [1] http://caml.inria.fr/ocaml/index.en.html
  [2] http://www.spoj.pl/
  [3] http://www.spoj.pl/ranks/languages/
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Несмотря на то, что F# основан на OCaml, они все-таки серьезно отличаются. В частности деталями синтаксиса, работой с полиморфными операторами и, конечно же, стандартной библиотекой. Не говоря уже о популярности: F# был довольно неплохо распиарен во время своего появления.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А чем в случае с c# вообще был обусловлен выбор именно mono вместо всем привычной майкрософтовской реализации? Если б севера были все unix-овые, то вроде понятно, но судя по строчкам компиляции тут тотальный windows.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    > вместо всем привычной майкрософтовской...

    Не стоит говорить за всех... ;)

    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Просто с целью расширения кругозора вопрос: неужели есть такие товарищи, которые под виндой пишут под немайкрософтовский дот-нет? И много ли таких, кто на юниксах пишет под дот-нет? Мне казалось, что цель проекта mono такая же, как wine - всего лишь сделать возможным запуск под юниксами кода, писанного под винду. Я глубоко заблуждаюсь?
      • 13 лет назад, # ^ |
        Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

        Да, вы очень сильно заблуждаетесь. Wine - это пародия на эмулятор, который даже под 64 бита не компилируется и навряд ли будет.

        Mono же - это реализация от небезызвестной фирмы Novell компилятора языка C# (что есть стандарт ISO) и среды исполнения для него. Понимаете разницу между просто другой реализацией компилятора стандартного языка и попыткой реализации нестандартного API закрытой ОС?

        "И много ли таких, кто на юниксах пишет под дот-нет?" - на одном GtkSharp-е уже столько прог написано. С такой тенденцией как сейчас, скоро половина почти самой популярной среды GNOME будет на mono (между прочим разработками и mono, и GNOME курирует один и тот же чувак).

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
желаю наличие Go (golang.org) в наборе языков написания тестируемых.
13 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
Please update Python 2.5 to Python 3.2.....
many other programming sites provides both versions...
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    If you want that, press here to the green button .
  • 13 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    I would also appreciate it if Python3.x is available.
    I learnt Python with its 3.0 and 3.1 releases. They did some significant changes (including the syntax) from 2.x to 3.x but the 2.x version remains popular. (And I think that's why officially Python is still maintaining and offering both 2.x (latest 2.7) and 3.x (latest 3.2) at the same time).

    I guess it won't hurt to provide both on codeforces, like KK123 said, there are also some other programming practice sites doing that.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Зарегистрировался, потому что указан F#, а его уже нету. Печалька
  • 13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +1 Проголосовать: не нравится

    Остался только один судья который дружит с F# - Sphere Online Judge . Если ошибаюсь, пожалуйста напишите. Очень надеюсь Codeforces F# вернут!
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Привет. Отправиль решение на VS C++ 2008, но почему то не скомпилировалась. Может не те библиотеки указываю
  • 13 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Если около нужного сабмита нажать на ссылку Ошибка компиляции, то можно увидеть, в чём дело.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    А у вас точно проект как консольное приложение?

    Решение скомпилировалось после того, как убрать
    #include "stdafx.h"
    и заменить
    int _tmain(int argc, _TCHAR* argv[])
    на
    int main()
    .

    Чтобы создать консольное приложение в MS Visual Studio нужно:
    1) Файл => Создать => Проект...
    2) Visual C++ => Win32 => Консольное приложение Win32
    3) Параметры приложения => [v] Пустой проект
    4) Добавить в «Файлы исходного кода» новый .cpp файл и писать туда.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
In java 6 do i have to write a particular class name for a problem
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А почему нет python3?
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Почему бы не добавить MS C#?

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\csc.exe /target:exe /out:solution.exe ИмяФайла.cs

13 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
Rendering to html failed: Transformation failed: Unclosed math text.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Unable to parse markup [type=CF_HTML]

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

      WTF??


      дубль3.
      давайте запускать ruby так:
      ruby script_name.rb ONLINE_JUDGE

      Чтобы иметь возможность писать в скрипте вот так.
      Очень удобно!
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        К слову про WTF - это оно на значки доллара так забавно реагирует... ;-)
      • 13 лет назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится
        Я поддерживаю камрада. Для C# (Mono), Ruby, Python и Haskell не определены макросы ONLINE_JUDGE. Это затрудняет написание автоматических генераторов тестов и вносит дисбаланс во всю экосистему. Давайте холить и лелеять более редкие языки. Людям которые их выбрали нужно дать возможность быть на равне с теми, кто использует более популярные платформы. Свободу попугаям!
        • 13 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Ну для Python можно использовать if __debug__ (там -O передаётся). А с остальными и правда беда.
        • 13 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Чтобы дать возможность быть наравне надо, в первую очередь, не давать задач которые на некоторых языках невозможно решить в принципе. Но, как я понял, администрация считает что эти языки настолько хороши, что единственный способ их урезвонить это зарезать нафиг по тайм-лимиту.
          • 12 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится

            Ну так скорость написания кода на Python, Ruby и подобных выше чем на С++, то есть люди, которые используют их, получают определенное преимущество. А так все справедливо: используй на здоровье, но знай о TL

            • 12 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится

              "Используй, но знай о TL" это просто другой способ сказать "не используй"))) Потому когда волнует TL (а это практически всегда) приходится писать на С и ко.

13 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Could you give the detail about the compiler used to compile (newly-added) OCaml?  I'd like to know if the optimizing compiler ocamlopt is used (which I suppose it should be.)  Anyway, thanks for adding OCaml.
»
13 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится
Неплохо бы было добавить поддержку D (D2). Очень удобный язык, на мой взгляд.
»
13 лет назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится
Update to Java 7?
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    It will be soon, not as update but as a separate language for now. Also we have desire to use it in production. Do you have such experience?
»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Мне кажется, имеет смысл добавить один из лиспов. Или Common Lisp, или Scheme. Мне лично больше нравится второй, вариант имплементации - Racket. Михаил, какие дополнительные исследования стоит провести, дабы точнее выяснить - насколько это реально? На что стоит обратить внимание, какие измерения и примеры стоит сделать?
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Давайте дождемся понимания того, что это нужно не только вам одному. Я не вижу плюсов к комментарию и ответов в поддержку.

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

      А python3 нужен много кому...

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

        Призываю весь сознательный народ, кодящий на питоне, поставить плюс комментарию выше.

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

        Плюсую. Python3 необходим.

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

      Я считаю, что хоть какой-нибудь лисп должен быть в списке. Лисперам проще перелезть с clojure на racket, чем даже на java. Да и такой вопрос спрашивается не первый раз http://mirror.codeforces.com/blog/entry/4722

      Common Lisp не нужен. Это старый стандарт, в котором много вещей лежат за плоскостью стандарта, в реализациях (либо каких-нибудь либах). Имена спешиалов имеют историчность(см. car, cdr). Впрочем, кто-нибудь может быть со мной не согласен.

      Scheme более интересный. Он более функциональный, чем CL, имеет больше фичей. Чего стоит только именованый let. Стандарт развивается http://scheme-reports.org/ Выше предлагали clojure. Удобный язык. Имеет удобные структуры, например. Лежит на JVM, развивается.

      Открытый вопрос: компилировать их, или запускать сразу?

      Если компилировать, не окажется ли, что читерно макросами в компайл-тайме можно что-то посчитать? (defmacro gen () `(quote ,(precalc arg1 arg2)))

      Если интерпретировать, всякие clojure могут работать медленно.

      Проще всего будет ввести какую-нибудь интерпретируемую scheme. Ракет, или что-то другое — огромной разницы нет, все-равно у каждого будет огромный сет стандартных макросов на все случаи жизни.

»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Is there any possibility to increase time limits for such problems, which impossible to solve in Ruby due to large input data (test 28 for instance)?
Thanks.
  • »
    »
    13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    This problem has a solution on Python consumed 60 ms and 3100 KB. I think it is possibly to solve it on Ruby. Anyway we do not guarantee that any problem has a solution on languages like Perl/PHP/Python/Ruby.

»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Добрый день,
предполагается ли поддержка C++ компилятора в Visual Studio 2010 (C++11)?
»
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Perl'а нет в списке

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

Существует ли пример, на котором -foptimize-sibling-calls для gnu c/c++ заметно ухудшает результаты?

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

Why is -fno-optimize-sibling-calls which disables tail call optimization passed to GCC? I've always assumed during the contests that GCC does TCO, so I'm a bit confused.

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

Доброго времени суток) Для всех языков программирования могут использоваться ТОЛЬКО стандартная либа и ничего более(ну кроме того, что написал сам)?

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

    Ну более-менее да. А вообще — запуск в помощь:)

    там можно проверить, что компилится, а что — нет.

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

Жаль, что нет Visual C# 2010.

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

Вопрос к тем, кто пишет на Python. Почему if __debug__: работает когда я запускаю программу у себя на машине через python -O, но не работает на сервере? То есть на сервере не смотря на заявленный ключ -O ветка дебага выполняется. Я что-то делаю неправильно или так и должно быть? И существуют ли какие-нибудь еще трюки для того, чтобы добавить в текст программы код, который бы выполнялся локально, но не выполнялся при обработке тестирующей системой?

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

i think "special languages" should not be disabled for those "normal problems"... also, some of normal problems are not so hard for esoteric languages to solve...

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

Проблема с размером стека для программ на C#: дефолтного 1МБ не хватает для многих задач (например DFS для 10^5 уже падает по StackOverflowException). Простой способ

int stackSize = 64000000;
Thread t = new Thread(new ThreadStart(Solve), stackSize);
t.Start();    

не работает, так как For partially trusted code, maxStackSize is ignored if it is greater than the default stack size Поэтому хорошо бы поставить .NET дописать какую-то пост-билд команду, которая поправит хедер бинарника перед запуском, например с Visual Studio идет утилита EditBin, и эта проблема решается так: EDITBIN.EXE /STACK:64000000 file.exe

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

Is there any plans to allow some versions of Lisp in contests? Common Lisp / Racket

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

Если настоящий .net разрешить никак невозможно, то может быть хотя бы моно можно поставить какое-нибудь посвежее? Например на интервьюстрите такой вот код:

using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(Environment.OSVersion);
        Console.WriteLine(Environment.Version);
        Console.WriteLine(typeof(SortedSet<int>));
    }
}

генерит такой вот аутпут:

Unix 3.2.0.24
4.0.30319.1
System.Collections.Generic.SortedSet`1[System.Int32]

Тут, на кодфорсе, по прежнему:

Can't compile program.cs:
program.cs(10,34): error CS0246: The type or namespace name `SortedSet' could not be found. Are you missing a using directive or an assembly reference?
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Кажется, я догадываюсь в чём баг: в строчках компиляции жеж у вас gmcs, его давно уже пора было заменить dmcs! Замените плиз?

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

Почему GCC и G++ используются со свитчами O2, а FPC -- без? Эксперимент показывает, что разница есть, причём весьма существенная.

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

I think Java should have larger stack size. Default stack size is too strict for some problems. Stack size can be changed with -Xss option.

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

    I agree, it should not be hard. For now it's possible to create a new Thread and specify the stack size in Thread's constructor.

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

I submitted a code in Java,But I get the following error

Source should satisfy regex [^{}]*public\s+class\s+(\w+).*

What does this mean???

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

    It should contain public class SomeName before any '{' or '}'

    or something like this. Can yo give link to the submission ?

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

Когда появится поддержка python3? ответьте , пожалуйста.

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

Мне кажется, или среди доступных компиляторов появился компилятор языка D?

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

Could you add the mtl package for Haskell to use the very useful Monad Transformer and State Monad

Thanks

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

Will Python 3.x will be supported? You could add it as a separate language, it's not neccessary to replace python 2.x. I think it's not hard to add it at all...

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

I don't see an F# option when submitting solutions. Help?

  • »
    »
    12 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    There are several discussions about it in this thread in Russian "view" (which you can read, though poorly, via google translate, I think). It looks like F# compiler have technical or some other problems and it was disabled for an unknown period of time...

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

Не знал куда писать, решил сюда. Почему при просмотре задач через "Архив" в некоторых из них нет блока "Отправить". Вот скрин.

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится -10 Проголосовать: не нравится

    Слева сверху есть кнопка "Отослать", нажав на которую можно или отправить сам исходник, или текст программы

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

Could you please upgrade GHC to the latest release (7.6.1)?

There are significant improvements comparing to the current one used in codeforces. It contains newer libraries which providing more powerful apis, provides new features and generates faster programs. These will make people using Haskell be able to challenge more complicated problems.

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

    I also agree on replacing the outdated GHC6 with GHC7.

    Instead of upgrading to GHC 7.6 directly, I suggest Codeforces to install Haskell-Platform 2012.4.0.0, which is more stable and well supported in many aspects. It contains GHC 7.4 and some new packages like vector, which makes Haskell competitive to imperative languages like C++ and Java in some problems.

    The LLVM backend is now stable in GHC7.4, and with -fllvm flags it will be enabled.

    I use ByteString state monad to parse input in haskell codes, Unfortunately, mtl package is not shipped with GHC (but included in haskell platform), so I have to paste a very long (like 50 lines?) piece of code implementing a very simple state monad each time.

»
12 лет назад, # |
Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

Появилась проблема со скачиванием условий из тренировок. Не нашел, куда еще можно сообщить о баге. Жму "скачать", но меня выбрасывает на страницу с сообщением того, что на codeforces что-то сломалось.

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

Заметил, что в списке языков при отправке решения стало "Microsoft Visual C++ 2008" вместо "2005". Поменялись ли ключи компилятора? Значит ли это, что MSVS 2005 больше не будет использоваться на сервере? Можно ли в ближайшее время ожидать MSVS 2010?

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

    а еще лучше MSVS 2012

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

      Не знаю, чем хороша или плоха MSVS 2012 по сравнению с предыдущими. Но могу сказать, что среди 2005/2008/2010 самая неудачная была 2008. Когда-то у меня одновременно стояли три упомянутые студии и была возможность сравнить скомпилированные exe-шники одного исходника по производительности. В коде активно использовались STL-контейнеры. Бинарник от 2008 работал в 1.5-2 раза медленнее, чем от 2005 и 2010.

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

May i know if this g++.exe -static -fno-optimize-sibling-calls -fno-strict-aliasing -DONLINE_JUDGE -lm -s -x c++ -Wl,--stack=268435456 -O2 -o %name%.exe %1 is still valid, ie. applies to GNU C++ 4.7 (currently used in programming contests held here on this site)?

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

Пара вопросов по параметрам GCC:

  1. Нужен ли всё ещё -fno-optimize-sibling-calls? Баг вроде как уже исправили в 4.7: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51323
  2. -fno-strict-aliasing введён просто из-за того, что слишком много людей его неосознанно нарушают, или же по какой-то конкретной причине?
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится

    Дело в том, что эта конфигурация вроде как для неопределенной версии cpp.g++. Т.е. это generic конфигурация. Например, эти строки могут попасть в скрипты компиляции каких-нибудь пакетов задач, а у пользователя будет 4.6. Или Полигон разворачивается в том числе в ЛКШ, и какая там версия MinGW я не знаю.

    Оба флага были введены для борьбы с багами GCC, о которых писал e-maxx.

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

Add Go and Rust please, thank you

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

How the system compiles C++ 0x program? with -std=c++11?

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

    -std=c++0x

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

      thanks

    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      Maybe it should be changed to -std=gnu++0x for consistency? After all, GNU extensions are enabled when compiling in default mode (the command line for "GNU C++ 4" will implicitly use -std=gnu++98).

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

      Please make it -std=c++11

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

      It seems the compiler haven't enable -std=c++0x, for example here is my code for http://www.codeforces.com/contest/218/problem/A, in which I used 'auto' to declare a variable:

      #include <iostream>
      #include <string>
      #include <algorithm>
      #include <cmath>
      #include <map>
      #include <set>
      using namespace std;
      
      const int N = 1000;
      
      int main() {
      	auto n = 0,k = 0;
      	cin>>n>>k;
      
      	auto a = new int[2*n+1];
      
      	for(int i=0;i<=2*n;i++) {
      		cin>>a[i];
      	}
      
      	for(int i=0;i<=2*n;i++) {
      		if(k && i%2==1 && a[i]-a[i-1]>1 && a[i]-a[i+1]>1) {
      			a[i]--;
      			k--;
      		}
      		cout<<a[i]<<' ';
      	}
      	return 0;
      }
      
»
12 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

In the past two contests, I met a problem with Perl. Such as these submissions.

http://mirror.codeforces.com/contest/266/submission/2991670 http://mirror.codeforces.com/contest/268/submission/3021653 http://mirror.codeforces.com/contest/268/submission/3022677 http://mirror.codeforces.com/contest/268/submission/3025426

The programs passes some test cases, but got a "Idleness limit exceeded" on some other cases. Could anyone help me with this problem?

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

У вас указана версия Scala 2.9.2 в апдейте от 5 января, а на сайте за день до этого вышла версия 2.10. Не могли бы вы обновить, пожалуйста? Заранее спасибо.

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

Is it possible to know why we can't use import collections in our Python code?

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

Какая полная строка компиляции для C++11 (c++0x здесь)?

Наверное, стоит добавить эту информацию в пост.

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

Well, probably many people write things like that and it may be annoying but... I think that scheme/lisp is a really nice language and that it would be nice to have the possibility to submit code in it. It is quite unique compared to other languages.

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

As I am taking an assembly language course, I found it hard to find problems to practice. I think it will be great if CF add a assembly compiler to the system so we can use some simple problem to improve our assembly programming skills.

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

Sorry for repeating, but I think it's a right time to finally add Python 3. It would be really nice from your side.

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

Mike, could you please add GCC C99 build target? It's so sweet to have variables in the middle of the scope and in for loop. Just gcc -std=c99. Or even update GNU C to support C99 — this shouldn't break existing C89 programs, while some people may take advantage of C99. Note you have C++11 as separate target.

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

Скажите, а нельзя ли в качестве интерпретатора питона использовать не классический CPython, а его jit-разновидность pypy? Совместимость у него полная с 2.7.3 (на уровне необходимом для codeforces), а по скорости гораздо быстрее.

Это бы увеличило конкурентноспособность питона по отношению к компилируемым языкам. И не надо будет никаких "коеффициентов". В общем, дайте нам счастье :-)

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

    ну что ж, раз pypy настолько быстрее, то давайте потестируем его на какой-нибудь задаче.

    задача: http://mirror.codeforces.com/contest/265/problem/C

    решение: http://mirror.codeforces.com/contest/265/submission/3467611

    CPU: Intel Core i5-2410M

    ОС: Ubuntu 12.04.2 x64 с ядром 3.5.0-28-generic

    python: 2.7.3 (default, Aug 1 2012, 05:14:39) [GCC 4.6.3]

    pypy: 2.0.0-beta2 with GCC 4.6.3 (из репозитория ppa:pypy/pypy-weekly)

    в файле input.txt — случайная строка из 1000000 букв l и r, как указано в условии.

    Результаты:

    time python -O lisska.py < input.txt > output_py.txt
    
    real	0m1.544s
    user	0m1.492s
    sys	0m0.048s
    
    time pypy -O lisska.py < input.txt > output_pypy.txt
    
    real	0m1.725s
    user	0m1.636s
    sys	0m0.084s
    

    мораль: pypy не нужен

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

      Да-да. Я когда несколько лет назад настраивал Python пробовал разные реализации. Однозначно сказать, что какая-то оказывалась быстрее на задачах было нельзя.

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

      Тоже решил потестировать.

      Задача: 282B - Раскрашивание яиц
      Решение: 3303340

      Генератор теста:

      n = 1000000
      print n
      for i in range(n):
          print "1000 0"
      

      Intel(R) Core(TM)2 Duo CPU
      Ubuntu 10.04 2.6.32-46-generic x86_64 GNU/Linux
      CPython: Python 2.6.5
      PyPy 1.9.0 with GCC 4.4.3 (https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux64.tar.bz2)

      CPython:
      real    0m5.561s
      user    0m4.330s
      sys     0m0.320s
      

      PyPy: ждал 10 минут, так и не досчиталось.

      ОК, уберем из решения инкрементальную конкатенацию строк — 3661508:

      CPython:
      real    0m5.044s
      user    0m4.020s
      sys     0m0.270s
      
      PyPy:
      real    0m3.125s
      user    0m2.200s
      sys     0m0.110s
      

      Т.е. если писать код "правильно", то PyPy получился несколько быстрее. Если же писать "неправильно" (но вполне удобоваримо для CPython), то PyPy может задуматься на вечность.

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

      Хорошо, давайте проведём тестирование

      • Железо: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz RAM16Gb
      • cPython: 2.7.3
      • PyPy: 1.9.0

      Тест №1. Линейное решето Эратосфена.
      """ Исходники — http://pastebin.com/6uY7nZHT """

      python eratosthenes.py
      4.88s user 0.02s system 99% cpu 4.909 total

      pypy eratosthenes.py
      0.53s user 0.04s system 100% cpu 0.567 total

      Кстати, этот алгоритм с такими параметрами (N=10**7) был нужен в задаче 300E — http://mirror.codeforces.com/blog/entry/7497 (авторское решение).

      Тест №2. Сорировка списка с помощью list.sort().
      """ Исходники — http://pastebin.com/Sjm7yps9 Делал два замера, с сортировкой и без, потом смотрим разницу """

      С сортировкой:
      python sort.py 11.18s user 0.09s system 99% cpu 11.273 total
      pypy sort.py 2.95s user 0.05s system 99% cpu 3.013 total

      Без:
      python sort.py 4.62s user 0.08s system 99% cpu 4.701 total
      pypy sort.py 0.95s user 0.02s system 100% cpu 0.971 total

      А сорировка — один из наиболее часто использемых алгоритмов.

      Тест №3. Длинная арифметика
      """ Исходники — http://pastebin.com/Npv0zePC Импровизированный тест на суммы и умножения длинных чисел """

      python long_arithmetics.py 12.56s user 0.00s system 99% cpu 12.565 total
      pypy long_arithmetics.py 8.86s user 0.02s system 99% cpu 8.879 total

      Тест №4. Списки — добавление элементов
      """ Исходники — http://pastebin.com/FMAEpqaa """

      python lists.py 7.22s user 1.05s system 99% cpu 8.269 total
      pypy lists.py 2.07s user 1.79s system 99% cpu 3.860 total

      Тест №5. Словари — добавление и поиск
      """ Исходники — http://pastebin.com/6NM01LSM """

      python dicts.py 5.51s user 1.00s system 99% cpu 6.515 total
      pypy dicts.py 3.10s user 0.80s system 99% cpu 3.919 total

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

      CNT0, взял специально ваш пример. Сгенерил файл из 10 ** 6 случайных букв l или r. У меня оба питона сработали одинаково, в рамках погрешности:

      >>> time python -O bad.py < input.txt > output.txt
      python -O bad.py < bad > result 1.08s user 0.04s system 97% cpu 1.153 total

      >>> time pypy -O bad.py < bad > result
      pypy -O bad.py < bad > result 1.09s user 0.06s system 97% cpu 1.187 total

      Но вы в коде используете "устаревшую" возможность сортировки с помощью cmp (в питоне 3.0 была вырезана). jit её не мог подхватить, поэтому и тесты не показали выигрыша (в случаях, когда jit не зайдествован, pypy действительно может быть медленнее классической реализации). Поэтому давайте посмотрим на решение этой же задачи, написанное обычными питоновскими циклами: http://mirror.codeforces.com/contest/265/submission/3228965

      >>> time python -O bad2.py < bad > result
      python -O bad2.py < bad > result 0.45s user 0.06s system 93% cpu 0.549 total

      >>> time pypy -O bad2.py < bad > result
      pypy -O bad2.py < bad > result 0.23s user 0.07s system 94% cpu 0.322 total

      И что видим? Питон проиграл в два раза. Прошу обратить внимание, что ваше решение через cmp работало в 2-4 раза медленнее.

      Оба интерпретатора — это инструменты, которые надо правильно использовать для получения максимального результата. Поэтому, призываю делать выводы объективно, без эмоций, с адекватными тестами.

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

круто.

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

Будет ли поддержка VB.NET?

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

I would like to +1 to numerous requests in this thread about missing Haskell libraries. Here is a list of the most important ones, in my opinion:

vector — provides Vector data type. Reference: 'Use this package whenever you'd use an array in another language'

unordered-containers — provides HashMap and HashSet data types.

mtl — provides Control.Monad.State, Control.Monad.Reader and others. Crucial for writing stateful code, without them it feels like part of the language is missing.

These are really the most basic packages and IMHO shouldn't be missing. (How would you feel about exclusion of std::vector from C++?) It would be great if at least these packages were installed but it's really simpler to just install Haskell Platform.

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

About Ruby. Ruby has no built-in support for multi-dimensional arrays, and the workaround like Array.new(n) { Array.new(m) { 0 } } is really a pain in the ass.

I think arrays are really important to algorithm problems. So just like other guys suggested to add the 'vector' hackage to Haskell(which I'll totally vote for it), maybe a more handy version of multi-dimensional array for Ruby should be added, like 'narray'.

Here's the webpage for narray. http://narray.rubyforge.org/SPEC.en

It's pretty neat.

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

Hello,

This might not be the appropriate place for my question but I don't know where else I can post.

I have submitted 2 problems and at some point, a test fails for each. The same happens when I run a custom test with the code and input. The issue is that when I run them locally, with the same set of data, the answer is the expected one. I chose GNU C 4 and locally I have GCC 4.7.3. I tried with the compile options from this page but I still have the same problem. Any ideas on this?

Thanks.

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

Will R-cran be supported? Topcoder have already done that.

I have compete in GCJ with R in 2012 and 2013, it was never a bottleneck. Here are some examples: https://github.com/hetong007/r4codejam

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

Maybe instead of Python you can use pypy (http://pypy.org/). Its a python JIT enabled runtime and much faster than default CPython interpreter and fully compatible with standard libs. I just had a time limit exceed due to a loop of 10^6 taking 5 seconds in CPython but only 0.1 sec in PyPy due to JIT. Please, consider replacing Python with PyPy

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

    I have just +1'ed all the posts that push PyPy. Let's add (or replace) CPython with PyPy. Example from 214: my solution to problem 3 got TLE on test 20. So I run the test with PyPy:

    $time python 3.py < 20
    1750
    
    real	0m3.343s
    user	0m3.245s
    sys	0m0.065s
    
    $time pypy 3.py < 20
    1750
    
    real	0m0.908s
    user	0m0.745s
    sys	0m0.111s
    

    (I was able to pass TLE by patching my solution, but anyway...)

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

      I support that. I used PyPy for Codejam and it often gave 2-3 times speed up compared to official Python compiler.

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

        Yeah, PyPy should be the standard for programming contests instead of CPython. I hope they support it in the near future!

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

          support!!!

          python always got TLE

          use PyPy or extend time limit for python language

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

Я конечно понимаю что задам вопрос интересный двум с половиной анонимусам, и все же, планируется ли возвращение F#? Он такой няша =33333

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

Было бы неплохо выключить проверку выхода за границы массива в языке D(-noboundscheck), или просто вместо -O сделать -release, она в себе содержит и оптимизации и отключение границ.

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

    А еще можно добавить компилятор gdc или ldc, они обычно заметно быстрее, чем dmd.

  • »
    »
    11 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Да, видимо, лучше будет не как сейчас:

    dmd -L/STACK:268435456 -version=ONLINE_JUDGE -O {file}
    

    А с компиляцией релизной версии:

    dmd -L/STACK:268435456 -version=ONLINE_JUDGE -O -release -inline -noboundscheck {file}
    

    Это всё равно уступает современному g++ -O2 из-за того, что оптимизатор в dmd не очень хорош, но хотя бы не в три раза на бенчмарке :) .

    Что случается от этих опций (источник 1, источник 2):

    1. -L/STACK:268435456: под виндой можно использовать до 256 мебибайт стека.

    2. -version=ONLINE_JUDGE: компилируется код, заключённый в version (ONLINE_JUDGE) {...}.

    3. -O: включаются оптимизации.

    4. -release: Все assert-ы и контракты in/out в функциях выкидываются из кода; для проверок, тем не менее, остаются enforce. Проверка границ массивов остаётся только в safe-функциях.

    5. -inline: Компилятор пытается инлайнить функции.

    6. -noboundscheck: Проверка границ массивов выключается для всех функций, в том числе safe.

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

    Сделал -O -release -inline -noboundscheck

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

      Здраствуйте.. Скажите пожалуйста, если писать программу с файлами, то как их нужно назывть??..

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

        Если в задаче указаны файлы, из которых надо читать и выводить, то надо использовать их. Если ничего не указано, то надо читать из stdin и писать в stderr (то есть без файлов)

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

hi why your c# compiler represent '.' like ',' so I'll get "Wrong answer" result on test. thx in advance

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

    If you mean printing numbers then it is probably because computers which test the solutions have russian locale by default. You need to print numbers in culture-independent manner (CultureInfo.InvariantCulture).

    • »
      »
      »
      11 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      I also want to complaint on this. Last contest I got 2 RE2 on my solution before I got what is the problem. Here is submits — 6072446 6072446 so... it's not to honest for participant to guess why you have runtime on server and correct answer on local PC.

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

c++ is my favorite language.

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

Меня интересует как происходит стандартный поток ввода-вывода в JavaScript. Как это нужно реализовать?

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

    readLine() — читает строку из stdin

    write() — пишет в stdout

    print() — пишет в stdout, вставляет символ перевода строки, и очищает буфер. То есть, этой функцией лучше не пользоваться.

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

Hello. Could you please describe what problems do you have with F#? What OS do you use with F#? I think that we can help deal with the problems and return it to the list of languages. Thanks.

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

Any chance to get a 64-bit version of PHP? Or do I need to start using a real programming language? :)

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

I never saw it mentioned anywhere in the blogs, so FWIW: I've noticed that Scala compiler has recently been upgraded to the latest and greatest (2.11.1). Whoever did this, thanks a lot.

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

I think codeforces has a great collection of supported languages, but most of them are from the ALGOL family. It would be really awesome if we could also have support for a Lisp. Could we possibly have support for Clojure or Common Lisp?

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

Удивительно что у этого поста нейтральная оценка. Хотя он несёт полезную информацию!

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

HI, what do you think about adding Dart language? It looks like a very cool language, and it has been recently approved and standardized by ECMA.

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

What about change python run env from cpython to pypy? Because the algorithm problems are always CPU intensive, pypy is 2-3 times faster than cpython in general.

Another solution is to extend the time limit for python, such as 5 times as cpp. For example, the time limit for java is 3 times as cpp at http://poj.org/

Because codeforces is all about algorithm problem solving, it's unfair for python programmer in the competitions.

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

    It is unfair to give one language a bigger time limit than to others. Python users already get the advantage of clean high-level syntax, data structures and language support, so they have to pay with a slower run time for this. Other, faster languages should not be handicapped just because they are better than Python in this regard.

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

Хотелось бы более новой версии Perl (v5.20 — 2014-05-27). Сейчас тут — Perl v5.12.2 . За три года появилось нового.

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

Thank you for ruby, go and ocaml. Closure would be great.

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

Any particular reason why C# .NET references System.Numerics assembly, but Mono doesn't?

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

В C# есть проблемы с локалью: вещественные числа выводятся через запятую вместо точки -> не проходят тесты.

Пример посылки с последнего контеста

Можно ли что-то сделать с настройками компилятора в будущем или есть какие-то стандартные средства для борьбы с этим?

UPD локаль можно оказывается менять так.

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

    А из командной строки можно?

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

      В теории можно написать "set LANG=en && ./run... ", на практике в Windows это кажется не работает или не всегда работает (м.б. en_US).

      Но если менять "Региональные настройки" в панели управления для всей системы, то это точно должно исправить для C#.

      У меня нет Windows + MS Visual Studio под рукой, чтобы проверить.

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

Привет! Есть подстава с PHP: по правилам, на таск отводится лимит по памяти 256 MB, а у интерпретатора стоит не зависящий от условий задачи дефолтный memory_limit=128M

Пофиксите, пожалуйста: -d memory_limit=1G

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

    Это можно прям интерпретатору передать, типа php.exe -d memory_limit=1G program.php?

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

      Да

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

        Спасибо, заменил строку запуска на такую php.exe -n -d ONLINE_JUDGE=true -d display_errors=Off -d error_reporting=0 -d memory_limit=1G %s, скоро выкачу.

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

          Спасибо! Работает правильное ограничение теперь

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

Is there any particular reason for running Java with -Xmx512M -Xss64M ?

For stack size, while C++ is compiled with 256MB stack size, why Java only have 64MB?

For Xmx, I think setting it to 512M makes behaviour of codes which heavily use objects unpredictable, because garbage collector may runs only after the code already got MLE.

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

В посте написано, что версия Python 3.4.1, но при выборе нужного интерпретатора при сабмите показывается версия 3.3.2. Кому верить?

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

I did not see the "GNU C++ 11" in the drop down list of language. Actually I saw "GNU C 4", "GNU C++ 4.7" and "GNU C++0x 4". Does "GNU C++ 4.7" option means run g++ command with --std=c++11?

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

I've updated g++/gcc to 4.9.2. We are using 32-bit MinGW on Windows 7 (64-bit OS). You can download it here: http://assets.codeforces.com/files/mingw-4.9.2.7z

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

Add rust please, thank you !

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

    Yeah, Rust is a very fast language (it's on par with C++ in Mike's "binary heap" benchmark) with great templates system. However, it's probably not a good idea to add it right now, because it's still unstable. For example, std::io is marked as a "work in progress".

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

    Rust is shaping up to be a very nice modern successor to languages like C++ (more so than D or Go). The 1.0 beta came out today, so please if you're reading this Mike, this is a great time to add it! :-D

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

Здравствуйте.

У меня возникла проблема при запуске данного кода на компиляторе GNU G++11 4.9.2 здесь:

#include <bits/stdc++.h>
#undef _GLIBCXX_HAVE_ICONV
#include <bits/extc++.h>

using namespace std;
using namespace __gnu_cxx;

int main() {
    cout << "Hello World";
    return 0;
}

Код работает на GNU G++ 4.9.2 там же, в запуске. Дело в том, что я использую библиотеку bits/extc++.h. Компилятор говорит, что если в строку компиляции добавить флаг [-fpermissive], то все пойдет нормально. Подробности, что привело меня к такой ситуации, в моем блоге. Прошу разобраться.

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

Добрый день!

Хотелось бы решать задачки на JavaScript, для чего я нашел как установить d8. Установка на mac прошла успешно, это ок, а вот под win7 не получается установить вышеуказанный компилятор js изза ошибок в билд скриптах Chromium. В связи с этим предлагаю добавить поддержку более популярной сборки — node.js, которая легко устанавливается для всех платформ.

Заранее спасибо за любой ответ.

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

а как решать задачи на PHP с прямым потоком ввода и вывода???в качестве ввода использовать глобальный массив REQUEST? не нашёл ни одного примера на этом сайте(((

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

    Вот, например, решение задачи 520B - Две кнопки на PHP: 10138374

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

      Большое спасибо! Такой еще вопрос, можно ли использовать функцию exit(); (PHP) в качестве принудительного завершения кода при проверке на допустимые значения данных? Или нужно использовать какую-то другую функцию?

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

Could you please consider adding Rust language.

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

Mike, could you please install Haskell Platform? It's quite annoying to implement Control.Monad.State again and again, while this monad is quite handful for input parsing.

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

Когда уже наконец будет -std=gnu11 или хотя бы -std=gnu99 для C? С момента выхода ANSI C уже четверть века прошла.

Режим строгой совместимости с ним не даёт делать многих вещей, без которых немыслима нормальная современная программа на C, — например, inline и декларации переменных в циклах — и заставляет делать другие, о которых легко забыть, ведь ни в C99, ни в C++ они не нужны, и совершенно сбивает с толку, когда ты о них забываешь, выдавая runtime error без каких-либо подробностей: да, я имею в виду return 0; в main.

Чистый C бывает очень элегантен… если разрешить писать на современном языке, а не языке из далёкого прошлого.

К слову, Clang принимает C99, если не C11, по умолчанию. И даже MSVC, который поддерживает C99 всё ещё не полностью (пока не вышла 2015-я версия), всё равно по умолчанию принимает весь тот C99, который он вообще умеет понимать, и даже не позволяет переключиться обратно.

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

    MSVC не поддерживает snprintf из C99. Microsoft долго сопротивлялся внедрению поддержки C99.

    • »
      »
      »
      10 лет назад, # ^ |
      Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

      Ну, во-первых, в следующей версии уже поддерживает… но да, конечно, MSVC очень долго и медленно добавляло поддержку C99, это верно. Сорри, если я кого-то ввёл в заблуждение. Но ту поддержку, которую они добавили, выключить невозможно.

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

      Я исправил/уточнил свой комментарий, спасибо.

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

    Может быть имет смысл писать на C11 и сдавать под c++11? Там же, мне кажется, не должно быть много несовместимостей?

    (Я не к тому, что не стоит добавлять C11, просто предлагаю workaround)

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

    Добавил GNU C11 — тот же gcc с флагом -std=c11.

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

For Ruby:

Ruby standard library hardly contains any algorithm implementation. Can you include for example "Ruby Algorithms and Containers project" by Kanwei Li 2009.

Anyway, PHP/Python/Ruby/Pearl are used for web development and scripting. Their standard input and output interface are very painful and inflexible unlink c/c++. But it's somehow fun to use them in easy-medium problems.

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

Предполагается ли в обозримом будущем MS VS C++ 2013? В MS VS 2010 очень бедная поддержка C++11.

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

Хотелось бы видеть Lua в списке разрешенных языков.

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

Please update Scala compiler to 2.11.6. Looks like currently installed version (2.11.2) fails when parsing empty string to array of ints, which has caused my submission 10718173 for 536B - Tavas and Malekas to fail on test #55 (m=0), which works fine on my local machine with 2.11.6.

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

I think you should remove the warning when you submit code that contains %lld. Both %I64d and %lld work fine with g++ now so now it is just annoying to submit the same code twice.

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

I experienced problems in using functions like to_string() and stoi() even when I select GNU C++11. The judge reports an error saying that it is not defined. Why is that so?

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

Can someone please give me an example of the correct code(the whole code) in Java for ANY question. Actually I am new here and wanted to know about the specifications required in the programs.

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

    Go to contest results for any finished contest and filter submissions by status and language using the panel on the right. Then clicking on the submission id link in the table will show you the code.

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

Когда планируется обновление Visual Studio до 2013 например? Вопрос возникает по большей части из-за поддержки С++11. Да, G++11 есть это хорошо, но все же если ты пишешь на visual studio, то ошибку компиляции или различное поведение компиляторов тоже можно словить.

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

Rust 1.0 was released so add rust please.

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

Есть ли в планах поддержка Kotlin?

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

@Codeforces Is there a chance to install "blist" or "sortedcontainers" packages for Python?

Unfortunately Python built-in lists are not well optimized for extra-large arrays typically used in Codeforces contests (>>10^5 elements). Python has very sluggish inserts and pops behavior for these gigantic lists — O(N) take seconds because it has to update every single index in the list.

These packages are using B+ trees to store lists and provide O(log(n)) vs O(n) speed improvement for list dels and inserts (though by the cost of slower lookup) and are essential for solving binary search problems without getting a TLE.

https://pypi.python.org/pypi/blist/? https://pypi.python.org/pypi/sortedcontainers/?

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

Mike, could you remove the code style limitation in Scala? Unlike Java, we can write multiple class or package in one file. This is a big limitation to make libraries. For example, following code cannot be accepted in Codeforces.

// There maybe multiple package definition.
package net.pushl {
  object Test {
  }
}
package net.pushl {
  class Test2 {
  }
}

// Multiple classes or objects can be defined in one file.
class Solver(){
  def main() : Unit = {
    println("Hello world")
  }
}

object Main {
  def main(args : Array[String]){
    (new Solver).main()
  }
}

To run this code, you cannot use "scala" command because it reads source code as "script". Use "scalac main.scala; scala Main" instead.

Thanks.

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

Было-бы здорово если бы вы включили поддержку языка Rust :) Осуществимо ли это? И если нет, то почему?

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

Add rust please! It is an elegant language and I really hope to see it and use it in Codeforces contests.

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

Is it possible to update the Ocaml compiler from 4.00.1? Int64/Big_int performance is a bit lacking on this version. Newer versions appear to have improved this somewhat.

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

кстати на днях прочитал, что Microsoft готовит консольную сборку C++-компилятора, которая будет распространяться отдельно от Visual Studio. Наконец-то на codeforces появится чем заменить MinGW и MSVC 2010

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

Lets add Kotlin as a programming language.

It is new language from JetBrains for JVM. It is even supported by default in Intellij IDEA, I think that's enough for adding it.

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

Hello,

I would like to write solutions in Lua. It is a 23-year-old language that doesn't have any novel features. The best interpreter for Lua is Luajit: http://luajit.org/

Thanks.

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

Got this error when 2-minutes were left in the contest #339::Div2::C I thought "M_PI" was standard in "G++11" /--------------------------------------------------------------------/ Can't compile file: program.cpp: In function 'int main()':

program.cpp:191:10: error: 'M_PI' was not declared in this scope

ans=ans*M_PI; ^ /--------------------------------------------------------------------/ Submission Link http://mirror.codeforces.com/contest/614/submission/15372460

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

Codeforces switched to GCC 5.1 and supports both C and C11 now. What are their compiler command lines?

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

    I wonder why specifically GCC 5.1 if the latest release in the GCC 5 series is 5.3.

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

      Perhaps because TDM-GCC is used, and 5.1 is the latest supported stable version.

      There are some alternatives (for example, MinGW-w64), but perhaps they are not that popular in contest programming.

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

javascript v8.does it mean it supports node.js too ?

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

Could also please add support for Erlang?

As far as I know, CodeChef already supports it.

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

Ок, а теперь новый вопрос по использованию javaScript — задача 35А читает данные из файла, и пишет их тоже в файл. То есть стандартные readline/print не подходят. Какое поддерживается API для работы с файлами?

UPD немного поигравшись в редакторе мне удалось выяснить что существуют глобальные функции read и load, и судя по ошибкам которые они выдают — они как раз пытаются работать с файлами. Но как ими пользоваться — не понятно, так как не известно какой у них синтаксис. Кому-то удалось с этим разобраться? Или верное решение вообще в другом направлении?

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

    Какое поддерживается API для работы с файлами?

    никакое. Читать из файла может и можно, писать — точно нет (смотрел исходники v8)

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

      Ну в v8 и readline, write и print нет, но они добавлены. В NodeJS есть стандартный модуль fs для работы с файловой системой, так что добавить поддержку работы с файлами, на самом деле, было бы очень просто добавить. Если код исполняется через NodeJS

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

        Ну в v8 и readline, write и print нет, но они добавлены

        есть

        Если код исполняется через NodeJS

        на codeforces используется голый движок v8. Модуль fs в Node не имеет к нему никакого отношения — он полностью самописный

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

Dear Mike,

Will you consider adding Julia? It is said to have the syntax of Python and speed of C. Honestly, I have not learnt it yet, but Codeforces has been such a great place for me to learn a new language. It would be great if you add it to Codeforces.

Thank you so much for this great platform.

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

I'd like to throw in my vote for Rust again. We're at 1.7 now and climbing.

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

I found that Safe Haskell was turned on in codeforces, which made a lot of modules unavailable, such as

Control.Monad.ST
Data.Array.Base (unsafeRead, unsafeWrite)
Data.Array.MArray
System.IO.Unsafe (unsafePerformIO)

This is very annoying as the word "safe" here has nothing to do with the safety of online judge, but more likely to disable a lot of unsafe (non-pure or something can make your program behavior weird or crash) modules for optimization. Can we disable this. And what exact flags are used for Haskell now?

Also, can we have ghc7.10 as a separate compiler? (I don't mind if it replaces ghc7.8 though) As ghc changed a lot in 7.10 due to https://wiki.haskell.org/Functor-Applicative-Monad_Proposal and many code won't compile.

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

    Agree with you! -XSafe has nothing to do with the safety, users can still use "System.Process.system" or other malicious functions, it just prohibit many legal techniques which are essential for high performance such as Control.Monad.ST, Data.Array.Base.

    At the moment, we may resort to safer versions: Control.Monad.ST.Safe, Data.Array.IO.Safe, Data.Array.IO.ST.Safe .

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

Since g++ version was updated to 5.1, can you change the compilation flag -std=c++11 to -std=c++14?

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

I used regex in GNU C++ 11 and got a CE:

    error: use of deleted function 'bool std::regex_match(...

but I complied my code successfully with G++ 4.9.1 using -std=c++11
I wonder whether it is my fault or regex is not allowed.

My submission
16757403

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

Haskell seems to be compiled with -XSafe flag, which makes using ST Monads impossible.

How to reproduce:

import Control.Monad.ST
main = return ()

Plus. it would be nice if we have the latest ghc :-) Since the standard library shipped with the current version is a little out-dated.

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

    Erh, by the way, Safe Haskell has nothing to do with the safety of the host machine. It's just a restriction imposed on how you could use the language. It's actually kind of like the opposite of -fpermissive

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

Haskell is unusable on codeforces without Control.Monad.ST. Please remove -XSafe option. It doesn't make haskell safer for test system!

Also current Haskell settlement lacks Data.Vector package. Haskell Platform should be used instead of bare GHC compiler. It's like Java or .NET without collection libraries https://www.haskell.org/platform/

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

Rust, please.

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

Please Rust, Mr. Mike.

Stable version 1.1 has been around.

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

I think Visual Basic.NET is a good language.And Visual Basic.NET is in top 10 every year nearly.Visual Basic.NET is ninth in Jun 2016 from TIOBE programming language list.So i suggest MikeMirzayanov add Visual Basic.NET 6.0 to CodeForces programming languages list.

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

Обновите, пожалуйста, haskell. Не хватает векторов и других очень важных и интересных фич!

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

Есть ли возможность расширить стек рекурсии на питоне?

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

Обновите, пожалуйста, компилятор D. Он там двухлетней давности, у меня ни одна программа не собирается под ним. Актуальная версия сейчас DMD 2.074.0

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

Can you please update the Go compiler version until 1.8 or 1.9? There are some incompatible differences between 1.7 and 1.8/1.9 that makes difficult to test solutions.

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

Could you update PyPy and, especially, PyPy3, please? There were some changes in the stdlib since Python 3.2. The JIT got smarter, too.

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

Проблема со стеком для c# mono — dfs для 200000 падает с рантаймом, для ms c# такого не наблюдалось

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

Столкнулся со странной проблемой, не знаю, куда писать. На питоне закомментированная заглавная И вызывает ошибку

Ошибка выполнения [COMPILATION_ERROR] Can't compile file: Traceback (most recent call last): File "", line 1, in File "C:\Programs\Python-3\lib\encodings\cp1251.py", line 23, in decode return codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 2: character maps to

===== Использовано: 0 мс, 0 КБ

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

What is the linux-based equivalent for parameter --stack=268435456 ??

And is this considered the memory limit for the problem ?

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

please fix syntax highlighting for rust submissions 39259717

"Custom invocation" page shows correct highlighting, so why not to use the same ace editor here

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

Could you please upgrade the version of haskell to 8.4 ?

thanks

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

Практикуется ли где-либо на online-judges более новая версия java, чем 8? Что там вообще есть потенциально полезного для того рода задач, который возможен на OJ?

Спрашиваю не только именно о codeforces, а и вообще.

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

Do you plan to add Petooh compiler?

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

Could you please update version of java to 11?

It should also affect kotlin.

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

Can we please get SBCL (the most popular implementation of Common Lisp) support? It is an extremely mature Lisp and probably the most performant one around right now.

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

+1 for Julia — would be amazing to have it supported.

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

need Kotlin

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

Is there any plan to add Swift?

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

I think stack sizes should be increased as much as possible. It seem it doesn't hurt even if the limit is more than a memory limit, so we can just set the limit to few gygabytes.

It will allow focus on algorithmic part of problem solving instead of learning some platform-dependent hacks

I'm talking mostly about c++, not sure if there are downsides for other languages (e.g possibility to use more memory because stack is handled incorrectly and/or problems with GC)

cc MikeMirzayanov

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

Было бы замечательно если бы была доступна Java версии 11.

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

Please bring back F#! After so many years the language and compiler have improved a lot, I believe it is worth a re-assessment for adding into the platform.

Sorry for the ping MikeMirzayanov...

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

Пишу на C#. Как понимать ошибку "Ошибка исполнения, код возврата 13131313"? Локально компилируется и с студии, и через csc.exe, нормально работает. Весь код обёрнут в try-catch, так что вообще удивительно, что там какой-то runtime exception может быть.

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

Не могу понять, почему используя JAVA 8. На моем компьютере все работает. Пытаюсь отослать задание пишет, что ошибка выполнения на первом тесте RUNTIME ERROR

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

    Размещайте класс в пакете по-умолчанию, то есть уберите package test_1175;.

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

Thanks for the platform and problems!

Could we have the latest C# compiler? Mono C# compiler version 5.18 is late! There is already 6.4.0 with great mcs which supports C# 6th version and some 7th. Or we can use .Net Core compiler, csc.

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

I want to know which compiler version is used for Rust.

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

This post seems not up-to-date. Is there an updated list of compiler versions and compilation commands somewhere?

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

Is Dlang somehow broken on Codeforces? Even the simple hello world program cannot execute successfully with custom invocation.

Code

import std;

void main()
{
    writeln("hello world");
}

Result

Aborting from 
object.Error@(0): Access Violation

Runtime error: exit code is 1
=====
Used: 0 ms, 204 KB
  • »
    »
    5 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    The import std; line currently does not work. Probably because some library from the whole set, like network and such, triggers security checks. Works fine when you specify individual imports you need.

    Here is a recent discussion of a similar matter, with Python & D involved.

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

      I encountered the exact same problem yesterday. Do you think it can be fixed by removing those libraries from being imported in std/package.d?

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

WE WANT BRAINFUCK DUDE

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

Please update Node.js to version 10.4.0 or higher, since it supports BigInt

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

any updates on c++17?

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

I want to put in a request to upgrade the version of Ruby interpreter to more a recent version like 2.7.0. https://www.ruby-lang.org/en/downloads/releases/ The current version (2.0.0p353) is from 2013 and new convenience functions have been released which would make Ruby more usable.

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

    I've recently run into an issue that ruby code was working fine locally, but was raising RuntimeError in CF.

    MikeMirzayanov please update ruby to the latest release: 2.7.1. The version that is currently in Codeforces (2.0.0) is much too old. (The version 2.4 has recently been deprecated.)

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

MikeMirzayanov kindly please update Scala from 2.12.8 to the latest 2.13.3. It contains many performance improvements and new features relevant to Competitive Programming (some of them were contributed by members of CodeForces community).

Thank you in advance.

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

Can we have GDC/LDC please?

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

Please add Swift! It has really clean syntax

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

Подскажите пожалуйста, возможно ли добавить .net core?

Все таки он сейчас является фактически флагманом для C# и точно так же кроссплатформенный, как и используемая сейчас mono, но поддерживает C# 8 версии.

Это как минимум поддержка index/range и самое главное Span<> и Memory<> которые позволяют в разы ускорить чтение запись.

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

Great work for updating compilers!

Unfortunately, mono C# compiler mcs doesn't support some latest C# features, so I'd like to use csc compilers that supports full C# 8.0. Or supporting .NET Core platform in addition to mono like AtCoder will be also fine. Thanks!

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

The current D language is 32-bit. This causes unexpected bugs while compilation like, array indices cannot be long. (see 92492947 and 92493027). This problem does not occur on any of the latest versions of D or on the codechef compiler. MikeMirzayanov could you please upgrade compiler to the latest 64-bit version.
Thanks in advance!
Also, it would be good if ldc -O could be used instead of dmd so problems run faster.

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

MikeMirzayanov std::reduce broken for C++17 (both GNU C++17 and GNU C++17(64))

See 95894458, here ooo(v) means v.begin(), v.end()

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

MikeMirzayanov Would be wonderful if you could add Julia :) seem as it was previously asked for here.

Ido

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

Would be nice if we could add Julia. It has a very succinct syntax that makes it easy for prototyping, yet it is (unlike other scripting languages like Python) blazingly fast. Here is a report of a participant using Julia in a contest: https://software.intel.com/sites/default/files/managed/73/11/delacorte-julia-rev2.pdf

We would just need to make sure that JIT compiling (which might take a short moment) is not added to the runtime.

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

Планируется ли обновление PascalABC.NET? Актуальная версия языка 3.8, в то время как на платформе имеется версия 3.4.2

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

MikeMirzayanov Could you please increase the Ruby interpreter stack size limit for better feature parity with the other programming languages? This can be done by defining RUBY_THREAD_VM_STACK_SIZE environment variable.

Right now any deep recursion results in a "Runtime error" verdict for Ruby solutions. It's probably not the best example, but you can have a look at these two submissions for the same problem: https://mirror.codeforces.com/contest/1513/submission/113150131 and https://mirror.codeforces.com/contest/1513/submission/113150168 (one is using recursion and the other doesn't).

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

Hi! What are compilation options for Rust submissions? When I run the test locally with cargo test --release, I see execution time more than 10 times lower than at Codeforces.

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

Эх, сейчас бы OCaml обновить до 4.13.

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

Could you update the OCaml compiler? That would be much appreciated :)

»
23 месяца назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Hello! Can you add Common Lisp as a supported language please? It is a very powerful language that can run at speed of c++ and is even more expressive than python.

  • »
    »
    23 месяца назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    MikeMirzayanov In hope that it will be able to help (judging by comment to Julia request):


    Here is an implementation of binary heap sort benchmark in common lisp: https://github.com/Gleefre/binary-heap-benchmark/blob/master/common-lisp/heap.lisp (and I'll be glad to create a PR if wanted).

    One of the best open source common lisp implementations is probably SBCL which can be installed here.

    A common lisp script can be run with sbcl like this: sbcl --script <filename>.

    Or, if (probably) needed, with an increased/decreased dynamic stack size: sbcl --dynamic-space-size <megabytes> --script <filename>. It's default value is platform dependent.

    On my computer, heap.lisp benchmark results in a range of [693..846] ms with an average time of 701.69 ms.


    The problem 1A — Theatre Square can be solved like this:

    (defun theatre-square (n m a)
      (* (1+ (floor (1- n) a))
         (1+ (floor (1- m) a))))
    
    (format t "~a~%" (theatre-square (read) (read) (read)))
    
»
23 месяца назад, # |
Rev. 2   Проголосовать: нравится +4 Проголосовать: не нравится

Hello, can you please consider increasing the stack size limit for Ruby? I have been practicing the language recently, and realized that the language has a 1MiB stack size limit by default. This limit makes a lot of things impossible for the language in CP (i.e. it dies here and there due to SystemStackError). This issue has been existent on other online judges as well, and I hope to see a resolution to this issue on Codeforces (and other judges as well). The language is mostly great (The ability to write concise code is a good thing in CP after all), and I hope other people could enjoy the language in CP as well. Still, this change may be crucial for people to truly enjoy the experience, without too many frustrations. (I won't complain about the language being too slow, sacrificing speed for conciseness is a good deal)

UPD: An update to Ruby 3.1.0 (or higher) would be a good change as well!

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

It would be convenient to be able to use the Data.List.Split module in Haskell. Could you please make sure the split package is available?

There are several common useful string splitting functions in this module (chunksOf, splitOn, ...).

Text splitting functions are available for partitipants in many other languages (like str.split() in Python).

Thank you!

Example submissions:
Uses chunksOf: 197324175 (does not compile)
Same with chunksOf re-implemented by hand: 197325080 (works but with additional code)

The package which provides Data.List.Split: https://hackage.haskell.org/package/split-0.2.3.5

(Alternatively, I believe this package is a part of the Haskell Platform, one could install Haskell Platform, together with other useful libraries.)

Example documentation on some useful function from this module:

https://hackage.haskell.org/package/split-0.2.3.5/docs/Data-List-Split.html#v:splitOn

https://hackage.haskell.org/package/split-0.2.3.5/docs/Data-List-Split.html#v:chunksOf

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

Can we ask for updates to some compiler versions? I want to practice OCaml with CF. However, the OCaml version extremely outdated and lacking basic primitives like List.init. Thanks in advance!

»
7 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

We want LuaJIT as a interpreted language. Please, add it to the website.