Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 
Вернуться
Тема: Обновите, пожалуйста, GCC до более свежей версии. Код, без проблем компилирующийся, например, в GCC 6.3, падает с Compilation error на acmu. Также было бы приятно увидеть в списке компиляторов clang. Спасибо.
1
  1  Хворых Павел, 24 октября 2017 г. 15:14:34
      20-я задача проходит с чтением через scanf, если подключать stdio.h (и не подключать iostream!)
  2  Хворых Павел, 24 октября 2017 г. 13:32:00
      Преподавательский, надо подключить именно stdio.h, не cstdio.
  3  Меньшиков Фёдор Владимирович, 24 октября 2017 г. 13:09:53
      Да, 41-я задача не проходит с чтением через cin и 20-я задача не проходит с чтением через scanf. Ну и что? Люди, пишущие на Java, же не ноют, что java.util.Scanner слишком медленный и для большого ввода нужно писать сканер самостоятельно. Они просто пишут свой сканер. И для C++ можно написать мегабыстрый ввод-вывод, используя fread. Если хотите, могу поделиться своей версией.
  4  Меньшиков Фёдор Владимирович, 24 октября 2017 г. 13:00:44
      Стандарт C++, N4296, Working Draft 2014-11-19. Секция D.5 C standard library headers [depr.c.headers] 1 For compatibility with the C standard library and the C Unicode TR, the C++ standard library provides the 26 C headers, as shown in Table 155. В списке заголовков присутствует stdio.h.
  5  Преподавательский, 24 октября 2017 г. 0:26:16
      Но в С++ по стандарту нет заголовочного файла stdio.h. Более того, даже с cstdio, sync_with_stdio(false) и cin.tie(nullptr) время исполнения всё равно больше TL.
  6  Меньшиков Фёдор Владимирович, 22 октября 2017 г. 7:30:03
      Задача 0041 на C++ проходит за 1.1 с если первая строчка программы #include <stdio.h>
  7  Меньшиков Фёдор Владимирович, 22 октября 2017 г. 7:25:07
      Чтобы искать конкретные различия, достаточно получить Compilation error, а затем кликнуть на номер исходника и посмотреть ошибки компиляции, которые выдаёт компилятор на acmp. Значительная часть проблем со скоростью ввода-вывода решается использованием <stdio.h> в качестве первого инклюда.
  8  Беляев Сергей Николаевич, 22 октября 2017 г. 7:16:13
      Софт для проверки решений написан под Windows, все работает в Windows XP, которая конечно уже не поддерживается в плане обновлений, зато требует гораздо меньших ресурсов, чем более поздние версии Windows. Реализация всего под Linux - более разумна, но кто же это все будет переписывать? :)
  9  Преподавательский, 22 октября 2017 г. 2:45:06
      Не уверен, что можно на тестовых машинах ставить что-то более тяжёлое. Оптимизированные асимптотически оптимальные решения на С++ для 0020 и 0041 не проходят по TL на тестах с длинным инпутом. Если это не ошибка в коде (маловероятно, но не уверен), то сейчас они нагружены существенно больше, чем во времена, когда эти задачи возможно было сдать.
     На С++ возможно сдать все задачи, более того, даже с запасом по времени. Во времена, которым более 3х лет и тестирующая система была одна и работала она на компьютере прошлого тысячелетия.
  10  Преподавательский, 22 октября 2017 г. 2:34:56
      На чём написан софт для проверки решений, и возможно ли его запустить на linux? CentOS требует 256 MiB RAM и 2 GiB HDD, и запускать GCC там существенно проще.
  11  Преподавательский, 22 октября 2017 г. 2:31:04
      К сожалению, чтобы искать конкретные различия с пруфами, нужно поставить gcc 5.1 в качестве системного компилятора. По меньшей мере, у них различаются транизитивные зависимости стандартных библиотек (несущественно, если подключать все необходимые по стандарту библиотеки) и есть какие-то различия в требованиях к лямбда-функциям, передаваемым компараторами в sort. Кстати, пора бы С++17 включать, поскольку текст стандарта одобрен, но и С++14 тоже было бы увидеть очень приятно.
  12  Меньшиков Фёдор Владимирович, 21 октября 2017 г. 14:17:22
      Кстати, официальные требования к Windows 10 32 bit - 1 Gb RAM + 16 Gb HDD. Это, конечно, повыше чем у XP, но вроде приемлемо для машинок, на которых работают тестирующие системы.
  13  Меньшиков Фёдор Владимирович, 21 октября 2017 г. 14:12:27
      Может всё-таки укажете конкретную конструкцию, которая в 6.3 компилируется, а в 5.1 нет? Может быть оно не имеет отношения к версии gcc, а имеет отношение к используемому стандарту C++? На acmp явно прописано использование C++11. Может Вы что-то из C++14 использовали? Если так, то всё при желании решается куда проще обновления до 6.3.
  14  Беляев Сергей Николаевич, 21 октября 2017 г. 4:02:40
      Вы считаете, что я не читаю форум? Здесь же должен кто-то удалять нецензурную брань :) Ну а с обновлением компиляторов весьма проблематично: в Windows XP не так просто устанавливаются. А для использования другой ОС требуется больше ресурсов.
  15  Касенов Бекжан, 21 октября 2017 г. 0:24:39
      Опыт показал, что чтобы сообщение действительно дошло до админа, нужно писать ему лично на почту.
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2017, ICQ: 151483