Этот пост более не актуален, он значительным образом устарел. Вам следует прочитать пост https://codeforces.net/blog/entry/121114.
Позже вы познакомитесь с правилами соревнований Codeforces, которые будут отличаться от правил ACM-ICPC, TopCoder, GCJ и, я надеюсь, немного разнообразят контесты. Большая часть официально-проводимых соревнований будет проходить именно по этим правилам, хотя будут и более традиционные контесты. Например, Codeforces Beta Round #1 будет проходить по старым-добрым правилам ACM-ICPC (имеются ввиду правила подсчета результатов — так как у нас соревнование личное, покороче, да и разрешенных языков поболее). Пока тестирование будет проводиться под ОС Windows, но в будущем это может и измениться, благо система поддерживает тестирование на разных платформах даже в рамках одного контеста.
В настоящий момент система сконфигурирована на поддержку следующих языков (для каждого указана строка компиляции и/или запуска):
- GNU C++ 4
g++.exe -static -DONLINE_JUDGE -lm -s -x c++ -Wl,--stack=268435456 -O2 -o {filename}.exe {file}
- 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}
- GNU C 4
gcc.exe -static -DONLINE_JUDGE -fno-asm -lm -s -Wl,--stack=268435456 -O2 -o {filename}.exe {file}
- MS VS C++
cl /W4 /F268435456 /EHsc /O2 /DONLINE_JUDGE {file} - Free Pascal 2
-n -O2 -Xs -Sgic -viwn -dONLINE_JUDGE -Cs67107839 -Mdelphi -XS {file} -o{filename}.exe - Delphi 7
dcc32 -Q -$M1048576,67107839 -DONLINE_JUDGE -cc {file}
- C# Mono 2
dmcs -define:ONLINE_JUDGE -o+ -out:{filename}.exe {file}
- C# .NET
csc.exe /o+ /d:ONLINE_JUDGE /r:System.Numerics.dll /out:{filename}.exe {file}
- Java 6, 7
javac -cp ".;*" {file}
и
java.exe -Xmx512M -Xss64M -DONLINE_JUDGE=true -Duser.language=en -Duser.region=US -Duser.variant=US -jar %s
- Ruby
ruby.exe %s - Python 2, Python 3
python.exe %s - PHP 5
php.exe -n -d ONLINE_JUDGE=true -d display_errors=Off -d error_reporting=0 %s
- Haskell GHC 7
ghc --make -O %s - D
dmd -L/STACK:268435456 -version=ONLINE_JUDGE -O -release -inline -noboundscheck {file} - OCaml
ocamlopt nums.cmxa str.cmxa -pp camlp4o -unsafe -o {filename}.exe-ocaml {file}
- Scala
As Java - 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
Что-то здесь не так:
gcc.exe -fno-asm -lm -s -x c++
<sarcasm> Ты бы еще сказал, что там не было basic_string< pair<double, int> >
</sarcasm>
Вообще-то да. Помню задачу про треугольники с саратовского ЧФ, где были строки в 300 символов и нужна была сортировка. После этого я принял окончательное решение олимпиады на паскале не писать
variadic macros & VLA де-факто зависят не от языка (Си или Си++), а от компилятора (у GNU есть, у MS нету).
а вот Си++ к сожалению нельзя написать y = (k ? sin : cos) (x); -- компилятор не сможет решить какие функции вызвать
y = ( k ? ( double (*)( double )) sin : ( double (*)( double )) cos )( x ); // А вто так - можно
так можно в С++
И каким же С++ транслятором можно так писать?
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".
Эти строки эквивалентны (имя функции является указателем на неё):
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.
y = ( k ? std::sin : std::cos ) ( x );
уже не компилируется.
Чтобы не писать так громоздко, можно сделать так:
typedef double (*df)(double);
y = (k ? (df)sin : (df)cos)(x);
Еще один вариант:
y = (k ? sinl : cosl) (x);
Гм. А что, такая ситуация *так часто* встречается, что есть необходимость в сокращенной конструкции?
Она не сокращенная. Просто С++ компилятору не хватает ума, чтобы скомпилировать без подсказки.
Вот еще вспомнил. В GNU C можно делать вложенные функции (почти как в Паскале, только удобнее), для С++ это не поддерживается.
Между прочим, можно считать, что каждая функция -- метод класса, поля которого -- аргументы функции.
А порой иногда не хватает компилятора С++ :D
Это реально?
сплит строки по пробелам
Люблю Python 3)
И компилирует ли он что-то типа
var a = new int[];
var q = from v in a select v;
?
Не везде (у FP точно нет). Зачем они нужны вообще?
#include "my/arithm.hpp"
Во-первых, тестирование производится на разных машинах, поэтому возникнут сложности с масштабированием и поддержанием доступности этих ваших модулей на всех компьютерах.
Во-вторых, такую возможность если и добавлять, то для всех языков. По-моему, слишком большой геморрой. Надо будет для каждого языка специфицировать, где что лежит, как что подключить и т.п. Зачем делать систему слишком запутанной в угоду сомнительным удобствам?
В третьих, ну неужели у вас так много ценного вашего кода, который вы хотели бы использовать на соревнованиях и по каким-то убеждениям не можете скопировать в код основной программы?
java.exe -Xmx256M -Xss<размер стека> -jar %s
Например:
java.exe -Xmx256M -Xss64M -jar %s
Здесь, правда, возникает проблема - при такой командной строке программа, вообще говоря, может использовать больше чем 256 МБ памяти (но только в стеке). Но выставлят стек надо в любом случае, по дефолту он очень мал.
Известный трюк сильно platform-dependent
Я понимаю, что прошло уже почти 10 лет и стек на джаве за это время выставили, но на плюсах тоже работает этот же трюк.
51060049 (падает из-за переполнения стека) vs 51060029 (выводит какие-то числа)
Так как я пишу все олимпиады в основном именно на нём :) (SNWS, Neerc ...)
А вот тут за это спасибо! :) А то бы как бы я писал codeforces #Beta 1,без любимого паскальчика :)
Правда иногда приходится юзать и STL :(((
Встроенной нет.
Но лично в Free Pascal'е в папке demo/text есть его реализация.
Под какой ОС проводятся запуск решений?
Версия GCC -- mingw или нет (mingw содержит ряд багов, которых нет в линуксовой версии glibc)?
Имхо, про полчаса вы загнули. Для рандомизированного бинарного дерева что нужно? Структура с узлом, две процедуры поворота, и процедура вставки. Итого строк 40-50. А полноценное АВЛ-дерево получается добавлением процедуры балансировки, строк десять.
Вот если нужно еще и удаление... тогда да, придется попотеть
And why C++ and C are compiled in the exact same way?
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://codeforces.net/contest/614/submission/15372460
{IfDefONLINEJUDGE}
WriteLn('Debugoutput');
{EndIf}
{IfDef ONLINE_JUDGE}
WriteLn('Debug output');
{EndIf}
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).
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.
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?
Has this ever been addressed? Is Haskell still run with a very low stack size?
I don't know to whom should I request the same.
http://codeforces.net/blog/entry/405
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.
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.
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.
Лично я против Perl, т.к. человеку, который не знает Perl будет сложно взламывать перловые решения.Тогда может дружно уберем F#, Ruby, Haskell, Python... ? не все же знают их...
ерунда короче.
Если же использовать автоматические обфускаторы, то можно и на других языках получить не меньший ужас.
http://ld.hackerdom.ru/b/?p=49 - нормально компилирующийся код на C++.
p.s. у меня почему-то едет форматирование на этом комментарии, либо пропадает текст.
Другое дело, что написать нечитаемый код можно на любом языке, но на Perl сделать это проще.
Однако [не хочу устроить холивар, мнение лично мое]:
1. Perl более производительный, чем другие скриптовые языки;
2. регэкспы и хэши в Perl гораздо удобнее для использования.
p.s. Действительно сложнее взламывать - это haskell или J... Код на языке J (не мой), складывающий все натуральные меньшие 1000, делящиеся на 3 или 5.
[code]+/~.(3*i.334),5*i.200
Perl появился в языках программирования. Спасибо!! )
-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.
And C# mono is much slower that csc.It is even slower than java(by a 2x factor)
UPD. Статистика вдруг начала резко меняться. Для тех кто пропустил: у первого сообщения было +4, у второго +8.
Оставить обе версии (2.х и 3.х) было бы самым правильным решением
Если 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/
> вместо всем привычной майкрософтовской...
Не стоит говорить за всех... ;)
Да, вы очень сильно заблуждаетесь. Wine - это пародия на эмулятор, который даже под 64 бита не компилируется и навряд ли будет.
Mono же - это реализация от небезызвестной фирмы Novell компилятора языка C# (что есть стандарт ISO) и среды исполнения для него. Понимаете разницу между просто другой реализацией компилятора стандартного языка и попыткой реализации нестандартного API закрытой ОС?
"И много ли таких, кто на юниксах пишет под дот-нет?" - на одном GtkSharp-е уже столько прог написано. С такой тенденцией как сейчас, скоро половина почти самой популярной среды GNOME будет на mono (между прочим разработками и mono, и GNOME курирует один и тот же чувак).
many other programming sites provides both versions...
Решение скомпилировалось после того, как убрать
и заменить
на
.
Чтобы создать консольное приложение в MS Visual Studio нужно:
1) Файл => Создать => Проект...
2) Visual C++ => Win32 => Консольное приложение Win32
3) Параметры приложения => [v] Пустой проект
4) Добавить в «Файлы исходного кода» новый .cpp файл и писать туда.
Почему бы не добавить MS C#?
c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\csc.exe /target:exe /out:solution.exe ИмяФайла.cs
Unable to parse markup [type=CF_HTML]
WTF??
Ну так скорость написания кода на Python, Ruby и подобных выше чем на С++, то есть люди, которые используют их, получают определенное преимущество. А так все справедливо: используй на здоровье, но знай о TL
"Используй, но знай о TL" это просто другой способ сказать "не используй"))) Потому когда волнует TL (а это практически всегда) приходится писать на С и ко.
ocamlopt
is used (which I suppose it should be.) Anyway, thanks for adding OCaml.Давайте дождемся понимания того, что это нужно не только вам одному. Я не вижу плюсов к комментарию и ответов в поддержку.
А python3 нужен много кому...
Призываю весь сознательный народ, кодящий на питоне, поставить плюс комментарию выше.
Плюсую. Python3 необходим.
Я считаю, что хоть какой-нибудь лисп должен быть в списке. Лисперам проще перелезть с clojure на racket, чем даже на java. Да и такой вопрос спрашивается не первый раз http://codeforces.net/blog/entry/4722
Common Lisp не нужен. Это старый стандарт, в котором много вещей лежат за плоскостью стандарта, в реализациях (либо каких-нибудь либах). Имена спешиалов имеют историчность(см. car, cdr). Впрочем, кто-нибудь может быть со мной не согласен.
Scheme более интересный. Он более функциональный, чем CL, имеет больше фичей. Чего стоит только именованый let. Стандарт развивается http://scheme-reports.org/ Выше предлагали clojure. Удобный язык. Имеет удобные структуры, например. Лежит на JVM, развивается.
Открытый вопрос: компилировать их, или запускать сразу?
Если компилировать, не окажется ли, что читерно макросами в компайл-тайме можно что-то посчитать? (defmacro gen () `(quote ,(precalc arg1 arg2)))
Если интерпретировать, всякие clojure могут работать медленно.
Проще всего будет ввести какую-нибудь интерпретируемую scheme. Ракет, или что-то другое — огромной разницы нет, все-равно у каждого будет огромный сет стандартных макросов на все случаи жизни.
Тем временем, языковая статистика: http://langpop.corger.nl/
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.
Here is a program with a single loop that iterates 20 times at max. It can't be faster but Ruby now takes 450msec to just start, so it randomly fails: https://codeforces.net/contest/16/submission/259850087
Can't we add additional time equal to time of running the empty program of that runtime?
Пока нет
А почему?
Perl'а нет в списке
Существует ли пример, на котором -foptimize-sibling-calls для gnu c/c++ заметно ухудшает результаты?
Мне не известен, но то, что его отсутствие приводит к фейлам известно.
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.Because we found that sometimes this optimization makes code to be invalid.
You use version 4.6.1 — this bug already fixed in this version.
Доброго времени суток) Для всех языков программирования могут использоваться ТОЛЬКО стандартная либа и ничего более(ну кроме того, что написал сам)?
Ну более-менее да. А вообще — запуск в помощь:)
там можно проверить, что компилится, а что — нет.
Жаль, что нет Visual C# 2010.
Вопрос к тем, кто пишет на Python. Почему
if __debug__:
работает когда я запускаю программу у себя на машине черезpython -O
, но не работает на сервере? То есть на сервере не смотря на заявленный ключ-O
ветка дебага выполняется. Я что-то делаю неправильно или так и должно быть? И существуют ли какие-нибудь еще трюки для того, чтобы добавить в текст программы код, который бы выполнялся локально, но не выполнялся при обработке тестирующей системой?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...
Проблема с размером стека для программ на C#: дефолтного 1МБ не хватает для многих задач (например DFS для 10^5 уже падает по
StackOverflowException
). Простой способне работает, так как 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
Is there any plans to allow some versions of Lisp in contests? Common Lisp / Racket
Please, not until I do a Surprise Language Round for it :-)
Если настоящий .net разрешить никак невозможно, то может быть хотя бы моно можно поставить какое-нибудь посвежее? Например на интервьюстрите такой вот код:
генерит такой вот аутпут:
Тут, на кодфорсе, по прежнему:
Кажется, я догадываюсь в чём баг: в строчках компиляции жеж у вас gmcs, его давно уже пора было заменить dmcs! Замените плиз?
Почему GCC и G++ используются со свитчами O2, а FPC -- без? Эксперимент показывает, что разница есть, причём весьма существенная.
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.
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.
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???
It should contain
public class SomeName
before any '{' or '}'or something like this. Can yo give link to the submission ?
Когда появится поддержка python3? ответьте , пожалуйста.
Мне кажется, или среди доступных компиляторов появился компилятор языка D?
Could you add the mtl package for Haskell to use the very useful Monad Transformer and State Monad
Thanks
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...
I don't see an F# option when submitting solutions. Help?
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...
Не знал куда писать, решил сюда. Почему при просмотре задач через "Архив" в некоторых из них нет блока "Отправить". Вот скрин.
Слева сверху есть кнопка "Отослать", нажав на которую можно или отправить сам исходник, или текст программы
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.
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.Появилась проблема со скачиванием условий из тренировок. Не нашел, куда еще можно сообщить о баге. Жму "скачать", но меня выбрасывает на страницу с сообщением того, что на codeforces что-то сломалось.
Роскомнадзор забанил, наверно.
Заметил, что в списке языков при отправке решения стало "Microsoft Visual C++ 2008" вместо "2005". Поменялись ли ключи компилятора? Значит ли это, что MSVS 2005 больше не будет использоваться на сервере? Можно ли в ближайшее время ожидать MSVS 2010?
а еще лучше MSVS 2012
Не знаю, чем хороша или плоха MSVS 2012 по сравнению с предыдущими. Но могу сказать, что среди 2005/2008/2010 самая неудачная была 2008. Когда-то у меня одновременно стояли три упомянутые студии и была возможность сравнить скомпилированные exe-шники одного исходника по производительности. В коде активно использовались STL-контейнеры. Бинарник от 2008 работал в 1.5-2 раза медленнее, чем от 2005 и 2010.
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 toGNU C++ 4.7
(currently used in programming contests held here on this site)?Yes
Пара вопросов по параметрам GCC:
-fno-optimize-sibling-calls
? Баг вроде как уже исправили в 4.7: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51323-fno-strict-aliasing
введён просто из-за того, что слишком много людей его неосознанно нарушают, или же по какой-то конкретной причине?Дело в том, что эта конфигурация вроде как для неопределенной версии cpp.g++. Т.е. это generic конфигурация. Например, эти строки могут попасть в скрипты компиляции каких-нибудь пакетов задач, а у пользователя будет 4.6. Или Полигон разворачивается в том числе в ЛКШ, и какая там версия MinGW я не знаю.
Оба флага были введены для борьбы с багами GCC, о которых писал e-maxx.
Add Go and Rust please, thank you
How the system compiles C++ 0x program? with -std=c++11?
-std=c++0x
thanks
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
).Please make it
-std=c++11
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:
Choose
c++0x
version of compiler. Your solution accepted: 3404996In the past two contests, I met a problem with Perl. Such as these submissions.
http://codeforces.net/contest/266/submission/2991670 http://codeforces.net/contest/268/submission/3021653 http://codeforces.net/contest/268/submission/3022677 http://codeforces.net/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?
У вас указана версия Scala 2.9.2 в апдейте от 5 января, а на сайте за день до этого вышла версия 2.10. Не могли бы вы обновить, пожалуйста? Заранее спасибо.
Поддерживаю. В Scala 2.10 появилась такая удобная штука как String Interpolation.
Is it possible to know why we can't use
import collections
in our Python code?I have never had a problem with this.
Какая полная строка компиляции для C++11 (c++0x здесь)?
Наверное, стоит добавить эту информацию в пост.
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.
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.
I suggest you to try https://projecteuler.net/ instead.
Sorry for repeating, but I think it's a right time to finally add Python 3. It would be really nice from your side.
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.
Maybe -std=gnu99 would be better as it also provides the GNU extensions
Скажите, а нельзя ли в качестве интерпретатора питона использовать не классический CPython, а его jit-разновидность pypy? Совместимость у него полная с 2.7.3 (на уровне необходимом для codeforces), а по скорости гораздо быстрее.
Это бы увеличило конкурентноспособность питона по отношению к компилируемым языкам. И не надо будет никаких "коеффициентов". В общем, дайте нам счастье :-)
ну что ж, раз pypy настолько быстрее, то давайте потестируем его на какой-нибудь задаче.
задача: http://codeforces.net/contest/265/problem/C
решение: http://codeforces.net/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, как указано в условии.
Результаты:
мораль: pypy не нужен
Да-да. Я когда несколько лет назад настраивал Python пробовал разные реализации. Однозначно сказать, что какая-то оказывалась быстрее на задачах было нельзя.
Тоже решил потестировать.
Задача: 282B - Раскрашивание яиц
Решение: 3303340
Генератор теста:
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)
PyPy: ждал 10 минут, так и не досчиталось.
ОК, уберем из решения инкрементальную конкатенацию строк — 3661508:
Т.е. если писать код "правильно", то PyPy получился несколько быстрее. Если же писать "неправильно" (но вполне удобоваримо для CPython), то PyPy может задуматься на вечность.
Хорошо, давайте проведём тестирование
Тест №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://codeforces.net/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
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://codeforces.net/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 раза медленнее.
Оба интерпретатора — это инструменты, которые надо правильно использовать для получения максимального результата. Поэтому, призываю делать выводы объективно, без эмоций, с адекватными тестами.
круто.
Будет ли поддержка VB.NET?
В ближайших планах поддержки VB.NET нет.
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.
Could you provide me an example source which uses all of the requested features?
Sure, here you go: http://codebin.org/view/869e25b2
Output on my machine (GHC 7.4.1):
+1 for unordered-containers at least. no hashmaps === very sad. =( here is code sample: http://codeforces.net/contest/366/submission/5241289
MikeMirzayanov At least unordered-containers could be added. We really need HashMap. See 83564736 for an example.
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.
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.
see this http://ideone.com/GDLpO7.
Try to printf values after scanf (in server code runner)
Problem is in the line with scanf
Hello,
Thank you for your reply. Indeed, it seems to be a problem with scanf. Any clue on how to solve this?
Thanks.
An
unsigned long
is only guaranteed to be able to hold values up to 232 - 1 ≈ 4·109. Check carefully, could the result that your solutions are printing be greater than this?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
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
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:
(I was able to pass TLE by patching my solution, but anyway...)
I support that. I used PyPy for Codejam and it often gave 2-3 times speed up compared to official Python compiler.
Yeah, PyPy should be the standard for programming contests instead of CPython. I hope they support it in the near future!
support!!!
python always got TLE
use PyPy or extend time limit for python language
Я конечно понимаю что задам вопрос интересный двум с половиной анонимусам, и все же, планируется ли возвращение F#? Он такой няша =33333
Было бы неплохо выключить проверку выхода за границы массива в языке D(-noboundscheck), или просто вместо -O сделать -release, она в себе содержит и оптимизации и отключение границ.
А еще можно добавить компилятор gdc или ldc, они обычно заметно быстрее, чем dmd.
Да, видимо, лучше будет не как сейчас:
А с компиляцией релизной версии:
Это всё равно уступает современному g++ -O2 из-за того, что оптимизатор в dmd не очень хорош, но хотя бы не в три раза на бенчмарке :) .
Что случается от этих опций (источник 1, источник 2):
-L/STACK:268435456
: под виндой можно использовать до 256 мебибайт стека.-version=ONLINE_JUDGE
: компилируется код, заключённый вversion (ONLINE_JUDGE) {...}
.-O
: включаются оптимизации.-release
: Всеassert
-ы и контрактыin
/out
в функциях выкидываются из кода; для проверок, тем не менее, остаютсяenforce
. Проверка границ массивов остаётся только вsafe
-функциях.-inline
: Компилятор пытается инлайнить функции.-noboundscheck
: Проверка границ массивов выключается для всех функций, в том числеsafe
.Сделал
Ура, спасибо!
Сделал -O -release -inline -noboundscheck
Здраствуйте.. Скажите пожалуйста, если писать программу с файлами, то как их нужно назывть??..
Если в задаче указаны файлы, из которых надо читать и выводить, то надо использовать их. Если ничего не указано, то надо читать из stdin и писать в stderr (то есть без файлов)
hi why your c# compiler represent '.' like ',' so I'll get "Wrong answer" result on test. thx in advance
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).
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.
c++ is my favorite language.
Меня интересует как происходит стандартный поток ввода-вывода в JavaScript. Как это нужно реализовать?
readLine()
— читает строку из stdinwrite()
— пишет в stdoutprint()
— пишет в stdout, вставляет символ перевода строки, и очищает буфер. То есть, этой функцией лучше не пользоваться.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.
Any chance to get a 64-bit version of PHP? Or do I need to start using a real programming language? :)
is php an imaginary language? ;)
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.
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?
Удивительно что у этого поста нейтральная оценка. Хотя он несёт полезную информацию!
тут почему-то не считается рейтинг поста..
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.
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.
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.
Хотелось бы более новой версии Perl (v5.20 — 2014-05-27). Сейчас тут — Perl v5.12.2 . За три года появилось нового.
Спасибо за новую версию! (5.20.1)
Thank you for ruby, go and ocaml. Closure would be great.
Any particular reason why C# .NET references System.Numerics assembly, but Mono doesn't?
В C# есть проблемы с локалью: вещественные числа выводятся через запятую вместо точки -> не проходят тесты.
Пример посылки с последнего контеста
Можно ли что-то сделать с настройками компилятора в будущем или есть какие-то стандартные средства для борьбы с этим?
UPD локаль можно оказывается менять так.
А из командной строки можно?
В теории можно написать "set LANG=en && ./run... ", на практике в Windows это кажется не работает или не всегда работает (м.б. en_US).
Но если менять "Региональные настройки" в панели управления для всей системы, то это точно должно исправить для C#.
У меня нет Windows + MS Visual Studio под рукой, чтобы проверить.
Привет! Есть подстава с PHP: по правилам, на таск отводится лимит по памяти 256 MB, а у интерпретатора стоит не зависящий от условий задачи дефолтный memory_limit=128M
Пофиксите, пожалуйста: -d memory_limit=1G
Это можно прям интерпретатору передать, типа
php.exe -d memory_limit=1G program.php
?Да
Спасибо, заменил строку запуска на такую
php.exe -n -d ONLINE_JUDGE=true -d display_errors=Off -d error_reporting=0 -d memory_limit=1G %s
, скоро выкачу.Спасибо! Работает правильное ограничение теперь
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.
You are right, I'm planning to change it. Thanks.
When you are at it, please remember to do the same stack increase for Scala solutions as well. Thank you in advance.
В посте написано, что версия Python 3.4.1, но при выборе нужного интерпретатора при сабмите показывается версия 3.3.2. Кому верить?
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?
GNU C++0x 4 is what you want for C++11.
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.7zMay I ask what is the use of "-D__USE_MINGW_ANSI_STDIO=0" ?
Now that you have g++ 4.9 please add the -std=c++1y option to the command line (or make it a different language, C++ 14)
Add rust please, thank you !
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".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
Rust 1.0 is released: http://blog.rust-lang.org/2015/05/15/Rust-1.0.html
Здравствуйте.
У меня возникла проблема при запуске данного кода на компиляторе GNU G++11 4.9.2 здесь:
Код работает на GNU G++ 4.9.2 там же, в запуске. Дело в том, что я использую библиотеку
bits/extc++.h
. Компилятор говорит, что если в строку компиляции добавить флаг [-fpermissive], то все пойдет нормально. Подробности, что привело меня к такой ситуации, в моем блоге. Прошу разобраться.Добрый день!
Хотелось бы решать задачки на JavaScript, для чего я нашел как установить d8. Установка на mac прошла успешно, это ок, а вот под win7 не получается установить вышеуказанный компилятор js изза ошибок в билд скриптах Chromium. В связи с этим предлагаю добавить поддержку более популярной сборки — node.js, которая легко устанавливается для всех платформ.
Заранее спасибо за любой ответ.
Рекомендую использовать ровно то, что я скомпилировал для Codeforces: http://assets.codeforces.com/files/v8-3.32.0.7z
Планируется ли поддержка более свежих версий V8? — EcmaScript 6 сделал JavaScript очень удобным и элегантным: https://github.com/lukehoban/es6features Очень многое из этого будет полезно и при решении задач.
а как решать задачи на PHP с прямым потоком ввода и вывода???в качестве ввода использовать глобальный массив REQUEST? не нашёл ни одного примера на этом сайте(((
Вот, например, решение задачи 520B - Две кнопки на PHP: 10138374
Большое спасибо! Такой еще вопрос, можно ли использовать функцию exit(); (PHP) в качестве принудительного завершения кода при проверке на допустимые значения данных? Или нужно использовать какую-то другую функцию?
Данные всегда вводятся корректные
Could you please consider adding Rust language.
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.
Когда уже наконец будет
-std=gnu11
или хотя бы-std=gnu99
для C? С момента выхода ANSI C уже четверть века прошла.Режим строгой совместимости с ним не даёт делать многих вещей, без которых немыслима нормальная современная программа на C, — например, inline и декларации переменных в циклах — и заставляет делать другие, о которых легко забыть, ведь ни в C99, ни в C++ они не нужны, и совершенно сбивает с толку, когда ты о них забываешь, выдавая runtime error без каких-либо подробностей: да, я имею в виду
return 0;
вmain
.Чистый C бывает очень элегантен… если разрешить писать на современном языке, а не языке из далёкого прошлого.
К слову, Clang принимает C99, если не C11, по умолчанию. И даже MSVC, который поддерживает C99 всё ещё не полностью (пока не вышла 2015-я версия), всё равно по умолчанию принимает весь тот C99, который он вообще умеет понимать, и даже не позволяет переключиться обратно.
MSVC не поддерживает snprintf из C99. Microsoft долго сопротивлялся внедрению поддержки C99.
Ну, во-первых, в следующей версии уже поддерживает… но да, конечно, MSVC очень долго и медленно добавляло поддержку C99, это верно. Сорри, если я кого-то ввёл в заблуждение. Но ту поддержку, которую они добавили, выключить невозможно.
Я исправил/уточнил свой комментарий, спасибо.
Может быть имет смысл писать на C11 и сдавать под c++11? Там же, мне кажется, не должно быть много несовместимостей?
(Я не к тому, что не стоит добавлять C11, просто предлагаю workaround)
Добавил
GNU C11
— тот же gcc с флагом-std=c11
.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.
Предполагается ли в обозримом будущем MS VS C++ 2013? В MS VS 2010 очень бедная поддержка C++11.
Хотелось бы видеть Lua в списке разрешенных языков.
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.
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.
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?
It's a bug in MinGW. As far as I understand, the fix is not released yet.
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.
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.
Когда планируется обновление Visual Studio до 2013 например? Вопрос возникает по большей части из-за поддержки С++11. Да, G++11 есть это хорошо, но все же если ты пишешь на visual studio, то ошибку компиляции или различное поведение компиляторов тоже можно словить.
Rust 1.0 was released so add rust please.
Есть ли в планах поддержка Kotlin?
@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/?
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.
To run this code, you cannot use "scala" command because it reads source code as "script". Use "scalac main.scala; scala Main" instead.
Thanks.
I really need this...
Было-бы здорово если бы вы включили поддержку языка Rust :) Осуществимо ли это? И если нет, то почему?
http://codeforces.net/blog/entry/18274?locale=ru#comment-231917
а вообще, я уверен что на нем никто ничего не будет сдавать на контестах — в области олимпиадного программирования у него нет никаких преимуществ перед C++, только недостатки
Add rust please! It is an elegant language and I really hope to see it and use it in Codeforces contests.
And it's fast...
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.
The problem is that the installed version is 32-bit, and it generates very slow int64 code.
кстати на днях прочитал, что Microsoft готовит консольную сборку C++-компилятора, которая будет распространяться отдельно от Visual Studio. Наконец-то на codeforces появится чем заменить MinGW и MSVC 2010
анонс и предварительная сборка: http://blogs.msdn.com/b/vcblog/archive/2015/11/02/announcing-visual-c-build-tools-2015-standalone-c-tools-for-build-environments.aspx
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.
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.
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://codeforces.net/contest/614/submission/15372460
M_PI
is not a standard C++ feature. You should define the constant yourself.Codeforces switched to GCC 5.1 and supports both C and C11 now. What are their compiler command lines?
I wonder why specifically GCC 5.1 if the latest release in the GCC 5 series is 5.3.
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.
javascript v8.does it mean it supports node.js too ?
Could also please add support for Erlang?
As far as I know, CodeChef already supports it.
Ок, а теперь новый вопрос по использованию javaScript — задача 35А читает данные из файла, и пишет их тоже в файл. То есть стандартные readline/print не подходят. Какое поддерживается API для работы с файлами?
UPD немного поигравшись в редакторе мне удалось выяснить что существуют глобальные функции read и load, и судя по ошибкам которые они выдают — они как раз пытаются работать с файлами. Но как ими пользоваться — не понятно, так как не известно какой у них синтаксис. Кому-то удалось с этим разобраться? Или верное решение вообще в другом направлении?
никакое. Читать из файла может и можно, писать — точно нет (смотрел исходники v8)
Ну в v8 и readline, write и print нет, но они добавлены. В NodeJS есть стандартный модуль fs для работы с файловой системой, так что добавить поддержку работы с файлами, на самом деле, было бы очень просто добавить. Если код исполняется через NodeJS
есть
на codeforces используется голый движок v8. Модуль fs в Node не имеет к нему никакого отношения — он полностью самописный
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.
I'd like to throw in my vote for Rust again. We're at 1.7 now and climbing.
I found that Safe Haskell was turned on in codeforces, which made a lot of modules unavailable, such as
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.
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 .
Since g++ version was updated to 5.1, can you change the compilation flag
-std=c++11
to-std=c++14
?I used regex in GNU C++ 11 and got a CE:
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
Can't see your code, but does this help?
It really helps, thank you.
Haskell seems to be compiled with -XSafe flag, which makes using ST Monads impossible.
How to reproduce:
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.
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
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/
Rust, please.
http://codeforces.net/contest/702/submission/19589375.
here we go.
The International 6, Windows 10 Anniversary Update, and then this. What a time to be alive!
Please Rust, Mr. Mike.
Stable version 1.1 has been around.
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.
Обновите, пожалуйста, haskell. Не хватает векторов и других очень важных и интересных фич!
Есть ли возможность расширить стек рекурсии на питоне?
Обновите, пожалуйста, компилятор D. Он там двухлетней давности, у меня ни одна программа не собирается под ним. Актуальная версия сейчас DMD 2.074.0
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.
Done
Could you update PyPy and, especially, PyPy3, please? There were some changes in the stdlib since Python 3.2. The JIT got smarter, too.
Проблема со стеком для c# mono — dfs для 200000 падает с рантаймом, для ms c# такого не наблюдалось
За год смотрю ничего не изменилось :(
Столкнулся со странной проблемой, не знаю, куда писать. На питоне закомментированная заглавная И вызывает ошибку
#И
Ошибка выполнения [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 КБ
What is the linux-based equivalent for parameter --stack=268435456 ??
And is this considered the memory limit for the problem ?
http://man7.org/linux/man-pages/man2/setrlimit.2.html
You can use -fno-stack-limit
please fix syntax highlighting for rust submissions 39259717
"Custom invocation" page shows correct highlighting, so why not to use the same ace editor here
It's still broken :(
Could you please upgrade the version of haskell to 8.4 ?
thanks
Практикуется ли где-либо на online-judges более новая версия java, чем 8? Что там вообще есть потенциально полезного для того рода задач, который возможен на OJ?
Спрашиваю не только именно о codeforces, а и вообще.
Do you plan to add Petooh compiler?
Could you please update version of java to 11?
It should also affect kotlin.
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.
+1 for Julia — would be amazing to have it supported.
need Kotlin
Kotlin works fine, currently 1.3.10
Is there any plan to add Swift?
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
Было бы замечательно если бы была доступна Java версии 11.
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...
Пишу на C#. Как понимать ошибку "Ошибка исполнения, код возврата 13131313"? Локально компилируется и с студии, и через csc.exe, нормально работает. Весь код обёрнут в try-catch, так что вообще удивительно, что там какой-то runtime exception может быть.
Не могу понять, почему используя JAVA 8. На моем компьютере все работает. Пытаюсь отослать задание пишет, что ошибка выполнения на первом тесте RUNTIME ERROR
Размещайте класс в пакете по-умолчанию, то есть уберите
package test_1175;
.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.I want to know which compiler version is used for Rust.
This post seems not up-to-date. Is there an updated list of compiler versions and compilation commands somewhere?
Is Dlang somehow broken on Codeforces? Even the simple hello world program cannot execute successfully with custom invocation.
Code
Result
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.
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
?WE WANT BRAINFUCK DUDE
Please update Node.js to version 10.4.0 or higher, since it supports BigInt
any updates on c++17?
https://codeforces.net/blog/entry/57646 (2 years old)
even https://codeforces.net/blog/entry/75004
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.
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.)
MikeMirzayanov kindly please update Scala from
2.12.8
to the latest2.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.
Can we have GDC/LDC please?
Please add Swift! It has really clean syntax
Подскажите пожалуйста, возможно ли добавить .net core?
Все таки он сейчас является фактически флагманом для C# и точно так же кроссплатформенный, как и используемая сейчас mono, но поддерживает C# 8 версии.
Это как минимум поддержка index/range и самое главное Span<> и Memory<> которые позволяют в разы ускорить чтение запись.
Great work for updating compilers!
Unfortunately, mono C# compiler
mcs
doesn't support some latest C# features, so I'd like to usecsc
compilers that supports full C# 8.0. Or supporting .NET Core platform in addition to mono like AtCoder will be also fine. Thanks!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 ofdmd
so problems run faster.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()
MikeMirzayanov Would be wonderful if you could add Julia :) seem as it was previously asked for here.
Ido
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.
Please, add a pull request with Julia here https://github.com/MikeMirzayanov/binary-heap-benchmark
Also please provide me a link to the problem 1A - Theatre Square.
It will help much.
Планируется ли обновление PascalABC.NET? Актуальная версия языка 3.8, в то время как на платформе имеется версия 3.4.2
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://codeforces.net/contest/1513/submission/113150131 and https://codeforces.net/contest/1513/submission/113150168 (one is using recursion and the other doesn't).
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.Эх, сейчас бы OCaml обновить до 4.13.
Could you update the OCaml compiler? That would be much appreciated :)
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.
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 of701.69 ms
.The problem 1A — Theatre Square can be solved like this:
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!
It would be convenient to be able to use the
Data.List.Split
module in Haskell. Could you please make sure thesplit
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
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!
We want LuaJIT as a interpreted language. Please, add it to the website.