У меня возникла проблема.
Этот код(http://pastebin.com/7fG1A6P6) получает RE на одной из систем тестирования.
Понятно, что скорее всего это из-за глубины рекурсии. Как можно обойти это с моей стороны? У меня на компьютере этот код так же вылетает.
Буду благодарен за помощь.
А какой компилятор в тестирующей системе и дома?
#pragma comment(linker, "/STACK:1000000000")
работает только под MS вроде.Под GNU C++ можно компилировать с флагом
-fno-stack-limit
, но с тестирующей системой это не поможет.Компилятор g++ на сервере и дома. Не MS.
Как именно обойти тогда это с тестирующей системой? Никак?
Можно, есть функции
getrlimit
иsetrlimit
из#include <sys/resource.h>
.Вот здесь есть описание. У меня заработали (linux и g++).
Возможно есть ещё способы :)
У меня такую библиотеку не находит. Даже на КФ не находит.
На CF тестируется под Windows и компилятор GNU C++ TDM, видимо поэтому не находит. На contest.yandex.ru вроде работает.
А на той тестирующей системе тоже под Windows тестируется? Если да, то придется искать другой способ.
Я вот так пробовал.
Да, работает. Но все же интересно, как на винде это сделать. У меня на винде это не компилируется.
Круто, что работает :)
Под винду не знаю как сделать. Возможно как-то можно установить размер стека для потока. В boost::thread вроде можно такое делать.
Под винду можно так: http://pastebin.com/TgCFs1Vy
Кстати, да. Я не думал, что WIN API будут работать под GNU C++ под Windows. На Codeforces работает :)