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

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


 
Вернуться
Тема: Я уже замучился с вашим дибильным компилятором. Уже размерность массивов изменял так и сяк, все равно RE. Что мне еще нужно изменить, чтобы задача была принята? задача номер 313, ошибка id 4273480
1
  1  Губила Родион Юрьевич, 05 июня 2015 г. 19:17:58
      Спасибо за совет. Описал массив вне головной функции и задача принялась.
  2  Хворых Павел, 05 июня 2015 г. 7:30:55
      Это связано с выделением памяти.
Место под глобальные переменные выделяется прямо в исполняемом файле (вроде бы в секции .data).
Место под локальные переменные выделяется на стеке.
И вот тут и прячется закавыка: стек ограничен. Вы упёрлись как раз в это ограничение. В студии это решается строчкой
#pragma comment(linker, "/STACK:16777216")
в начале файла. Конкретно эта строка увеличивает стек до 16777216 байт = 16 мб. Ну либо можете просто объявлять большие массивы в глобальной области, я всегда так делаю, мне лень каждый раз гуглить эту строку.
А вообще можно попросить администратора добавить в ключи компилятора /STACK:16777216. Для gcc это уже сделано.
  3  Денис Розимовский, 04 июня 2015 г. 23:15:44
      И опять же. Решил сортировкой подсчетом, массив на 200 элементов :)
Однако объявление массива вне main - помогает, не первый раз в этом убеждаюсь.
  4  Хворых Павел, 04 июня 2015 г. 20:50:04
      Вы определяете массив прямо в main? Вынесите его определение в глобальную область (перед main). Если поможет - объясню причину.
  5  Губила Родион Юрьевич, 04 июня 2015 г. 19:09:32
      в 41 задаче я поставил размерность 500 000. Не знаю как на паскале, я сдаю все на Visual C++.
  6  Денис Розимовский, 04 июня 2015 г. 18:46:05
      А ну давайте мне номер задачи, я проверю.
  7  Губила Родион Юрьевич, 04 июня 2015 г. 18:36:54
      с сортировкой я возился в другой задаче. И там она прошла все тесты только когда я уменьшил размер массива, который был задан в условии, в 2 раза. Если ставлю размер больший чем 514200, то ни одна задача не принимается из за этой ошибки.
  8  Денис Розимовский, 04 июня 2015 г. 18:23:10
      Хотя...беру свои слова обратно. Сортировкой тут и решается, правда не совсем обычной :)
  9  Денис Розимовский, 04 июня 2015 г. 18:18:41
      Конечно количество пройденных тестов будет меняться, вы же меняете размер массива! Соответственно, один раз заданный индекс будет существовать и все получится, а в другой раз такого индекса не будет ( ибо размер массива слишком мал ) и выдаст RE.
Поверьте мне, сколько тут сижу - часто ругался на компиляторы и проблемы сайта. Правда, потом проблема всегда оказывалась в моем коде, хех.
  10  Денис Розимовский, 04 июня 2015 г. 18:14:45
      Я сдал задачу на Паскале используя только массив из 100 32-битных чисел. Сортировка тут, как по мне, вообще не к месту. Внимательно читайте условие и не торопитесь.
Кстати, ваш злейший враг, компилятор, нагло принял мою задачу даже с массивом из миллиона элементов.
  11  Губила Родион Юрьевич, 04 июня 2015 г. 18:08:58
      При том, что в задаче стоит максимальный размер массива на 10^6 элементов, а если опишешь такой массив, то компилятор пошлет его с этой ошибкой на первом же тесте. Начнешь экспериментировать с размерностью и количество пройденых тестов будет меняться. Из за это тупой недоработки я с сортировкой весь день промучился, пока не "тыкнул пальцем в небо" и не по ставил размер массива на 5*10^5 элементов.

В правильности решения своей задачи я уверен на 100% так что не надо мне тут...
  12  Денис Розимовский, 04 июня 2015 г. 18:05:11
      Смотрю на свои попытки сдать эту задачу и вижу, что RE был из-за того, что я держал миллионный массив содержащий только 16 битные числа, когда тут нужно работать с 32 битными.
  13  Денис Розимовский, 04 июня 2015 г. 17:53:57
      Причем тут компилятор? Если Runtime Error, то проблема в вашем коде. Вы, случаем, не обращаетесь к несуществующему элементу?
  14  Губила Родион Юрьевич, 04 июня 2015 г. 16:00:49
      Пишу здесь потому, что в обсуждениях задачи ответа я не получу точно, так как вы их все равно не смотрите
1

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

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru