YadryaraЯ, кстати, ваш код ускорил процентов на 10 примерно, просто явной типизацией счётчиков циклов и других переменных.
Но там есть переменные которые вообще не используются, видимо у меня код неполный. По некоторым переменным непонятно могут они быть большими числами или не могут, не разбирая всю вермишель кода.
Ещё несколько процентов даст отказ от операций с множествами (setminus с предварительной конвертацией вектора во множество) во внутренних циклах, это малоэффективно и много раз делается. Во внутренних циклах так же создаются новые переменные. Это значит, что каждый раз когда внешний цикл вызывает внутренний, все эти переменные создаются заново и потом уничтожаются и так постоянно. Например на шестом (!) уровне вложенности у вас есть строчка s = vector(#v); при том что ранее s нигде не встречается. Мне так же показалось, что и присваиваний во внутренних циклах могло быть меньше.
Вот на эти аспекты гляньте.
-- 14.11.2025, 16:00 --Подождите! Точно скомпилировал? Я же Вам рассказываю старый способ счёта. То есть с помощью интерпретатора.
А, ну тогда ок. Как вас понять, что у вас старое, а что новое...
-- 14.11.2025, 16:02 -- А сегодня специально запустил ровно один potok 1 и всё равно переполнение было. 512 МБ не хватило. А для интерпретатора всегда 128 МБ всегда хватало.
Ну так интерпретатор видать всё время чистит лишнее, на это уходит время...
-- 14.11.2025, 16:08 --Комп должен сам следить чтобы выстраивать в очередь желающих записаться. Или неправильно понимаю?
Да, если вы или pari за вас, в программе следите за тем, чтобы файлы закрывались, освобождая их на запись.
И пока они стоят в очереди "желающих записаться", они же наверное ничего не считают, вы это понимаете же?
Ну и плюс в логе получаются записи от разных "потоков", хотя если там у вас структура такая, что это не мешает, то и хорошо.