|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.11.2014, 03:37 | #1 |
Новичок
Джуниор
Регистрация: 22.11.2014
Сообщений: 6
|
Задача (Pascal/Delphi)
Здравствуйте.
У меня есть задача, которую необходимо решить. Я её решил, но, к сожалению, частично. Из того набора тестов, которые должна пройти моя программа четыре она пройти не может. Два по причине превышения лимита времени, два по причине ошибочного ответа. Если кто-нибудь мог бы указать на возможные критические точки (наборы входных данных) программы из-за которых появляются неправильные ответы и/или же указать способ оптимизации - я был бы крайне признателен. Текст задачи и программы прикладываю. Задача: Рассмотрим ряд натуральных чисел, для которого введём указатель актуальной позиции (POS). Так же введём две операции, которые могут быть выполнены на элементах ряда: 1) R - удаление элемента C ряда на позиции POS+1 и сдвиг POS на C позиций вправо. 2) X - вставка элемента C-1 на позицию POS+1, где C - Элемент на позиции POS. Необходимо выписать ряд после T выполнений операций R и X, при условии, что если элемент на позиции POS чётный, то выполняем операцию R, в противном случае - Х. Начинаем от первого элемента ряда. Так финальный ряд должен быть выписан от элемента на позиции POS до элемента на позиции POS-1. Формат: На вход подаётся ряд чисел. Первое - это T - число выполнений операций. Остальные - сам ряд, до знака EOF. На выход необходимо выписать ряд после выоплнения всех операций, в виде указанном в условии. В случае если ряд пуст - вывести -1. Примеры данных: Вход: 3 1 2 3 Выход: 0 0 3 1 Вход: 8 5 1 2 3 Выход: 2 2 Вход: 50 378 31 239 351 192 135 143 100 115 398 176 140 468 295 124 32 379 438 62 200 313 92 450 75 294 338 459 344 56 162 455 307 311 432 209 458 51 475 360 187 88 489 238 326 175 180 358 254 198 79 Выход: 454 307 306 310 310 432 51 50 475 360 358 198 378 351 350 135 134 143 142 142 100 398 140 62 313 312 312 450 75 294 458 56 Код: http://pastebin.com/gRWPr5GW |
22.11.2014, 15:02 | #2 | ||
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
||
22.11.2014, 17:31 | #3 |
Новичок
Джуниор
Регистрация: 22.11.2014
Сообщений: 6
|
Боюсь, что TList ипользовать нельзя.
Хм, странно, у меня этот сайт всегда спокойно открывался. Просто ресурс для передачи кода друг другу, и всё. Хорошо, вставляю код сюда. Код: Код:
Последний раз редактировалось Stilet; 22.11.2014 в 18:58. |
22.11.2014, 17:47 | #4 | ||
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Цитата:
Ну и, конечно, Бонус! Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
||
22.11.2014, 18:06 | #5 |
Новичок
Джуниор
Регистрация: 22.11.2014
Сообщений: 6
|
В первой версии программы было увеличение длинны массива динамически при помощи SetLength. После прогона тестов получил превышение лимита времени по всем тестам и убрал динмическое расширение.
Моя ошибка в шапке темы. Ещё раз проверил список доступных компиляторов - там только Pascal. Писал тему уже ночью, поэтому ошибся, прошу прощения. Когда я отправлял код сюда он был отформатирован по правилам. Попробую приложить код файлом, может будет лучше. |
22.11.2014, 18:54 | #6 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
22.11.2014, 19:01 | #7 |
Новичок
Джуниор
Регистрация: 22.11.2014
Сообщений: 6
|
Компилятор - fpc 2.2.4
|
22.11.2014, 19:08 | #8 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
22.11.2014, 20:13 | #9 |
Новичок
Джуниор
Регистрация: 22.11.2014
Сообщений: 6
|
Думаю вполне подойдёт.
Я вообще ещё со школьных олимпиад всё пишу в PascalABC.NET - проблем пока не возникало. |
22.11.2014, 20:20 | #10 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
качай лазарус. там есть TList и всё остальное. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Есть задача на pascal нужно в delphi переделать | djgrif | Общие вопросы Delphi | 1 | 27.06.2013 09:04 |
Задача turbo pascal на тему: файлы с произвольным доступом в Pascal | ExCiTeC | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 28.01.2013 20:36 |
Задача по подсчёту статистики использования букв. Другая задача - по длинной арифметике Pascal ABC | kimberly | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 24.12.2012 17:03 |
Читатели библиотеки - задача на тип запись (record) в Pascal\Delphi | Ski | Помощь студентам | 1 | 15.05.2012 21:43 |