|
|
|
|
|
|
|
Вернуться
| 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 | |
|
Пишу здесь потому, что в обсуждениях задачи ответа я не получу точно, так как вы их все равно не смотрите
|
|
|
Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!
| | | |