Две программы на Turbo Pascal

Для тех, кто хочет сделать мир лучше.
Ответить
Сообщение
Автор
thrndm
Лейтенант
Лейтенант
Сообщения: 155
Зарегистрирован: 07.05.2008
Контактная информация:

#1 Сообщение 04.12.2010, 09:29

Прошу помощи, напишите кто-нибудь две небольших программы на Turbo Pascal.

Во всех задах ввод данных производится из файла input.txt, а вывод результатов - в файл output.txt

1. Расписание автобусов

Ограничения: время – 500ms, память – 64M

Из города Китеж в форт Байан почти каждый час с 700 до 1700 отправляются автобусы с туристами. К сожалению, в расписании указано только время отправления, но не указано время прибытия. Петя узнал, что время поездки до форта без остановок равно K часов. Но согласно постановлению главного врача Беловодья водители во время поездки должны делать остановки с 800 до 900 на завтрак, с 1300 до 1400 на обед и с 1800 до 1900 на ужин.

Напишите программу, которая поможет Пете узнать время прибытия автобуса.

Первая строка ввода содержит два целых числа – время отправления автобуса T (7 ≤ T ≤ 17, T≠8, T≠13) и длительность поездки без остановок K (2 ≤ K ≤ 10).

Вывести одно целое число – время прибытия автобуса с учетом остановок на еду. Входные данные таковы, что автобусы прибывают в форт не позднее 2300.

Пример ввода
11 3
Пример вывода
15

Если бы автобус ехал без остановок, то он приехал бы в форт в 1400, но водитель должен сделать остановку на обед с 1300 до 1400, поэтому автобус приедет в форт в 1500.

2. Бинго

Ограничения: время – 500ms, память – 64M

Во дворе форта Байан проходят соревнования по игре в "бинго". Игра проходит на поле размером 5x5 клеток, каждые 5 секунд компьютер случайно выбирает одну из пустых клеток и подсвечивает ее, тогда один из игроков команды должен встать на эту клетку или положить в нее пушечное ядро. Если команда не успевает выполнить ход за отведенное время, то ход пропускается. Если ряд из 5 клеток по горизонтали или по вертикали будет полностью заполнен, команда кричит "бинго" и клетки этого ряда освобождаются от игроков и ядер. Может получиться так, что ядро (или игрок) ставится на пересечении двух рядов, в каждом из которых было по 4 заполненных клетки, таким образом два ряда (по вертикали и по горизонтали) будут заполнены одновременно, в этом случае команда кричит "бинго" дважды, и оба этих ряда освобождаются от игроков и ядер.

Напишите программу, определяющую, сколько раз за время игры команда сможет сказать "бинго", если успеет выполнить все ходы.

Первая строка ввода содержит одно целое число N (5 ≤ N ≤ 100) – количество ходов. Далее следует N строк, содержащих по два целых числа от 1 до 5 – номер строки и номер столбца подсвечиваемой клетки. Подсвечиваются только пустые к этому моменту клетки.

Вывести одно целое число – сколько раз у команды получится "бинго".

Пример ввода
8
1 2
3 5
3 2
4 5
3 1
3 4
3 3
5 5

Пример вывода
1

Аватара пользователя
olegv11
Полковник
Полковник
Сообщения: 2329
Зарегистрирован: 16.03.2007
Откуда: От мамы

#2 Сообщение 04.12.2010, 10:13

память – 64M
Это ж что туда надо засунуть, чтобы на 64 мегабайта?
Изображение
Garry Newman писал(а):Atheists don't hate religious people, they just think they're stupid.

Аватара пользователя
Pr0Ger
Модератор
Модератор
Сообщения: 1829
Зарегистрирован: 16.01.2009
Благодарил (а): 17 раз
Поблагодарили: 214 раз
Контактная информация:

#3 Сообщение 04.12.2010, 12:14

olegv11
олимпиадные задачи ограничивают по времени и памяти, что-бы отсечь решение работающие перебором или хранящие массив возможных входных вариантов

Аватара пользователя
olegv11
Полковник
Полковник
Сообщения: 2329
Зарегистрирован: 16.03.2007
Откуда: От мамы

#4 Сообщение 04.12.2010, 18:11

Лол, в любом случае 64 мега это... это много для текста.
Изображение
Garry Newman писал(а):Atheists don't hate religious people, they just think they're stupid.

Аватара пользователя
zaq007
Сержант
Сержант
Сообщения: 98
Зарегистрирован: 26.04.2009
Контактная информация:

#5 Сообщение 04.12.2010, 18:40

Ну почему много...А если вбить пару десятков массивов, на кучу элементов, да ещё и int64
Изображение

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#6 Сообщение 04.12.2010, 18:54

8 массивов по 1048576 элементов типа int64.
Люто.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#7 Сообщение 05.12.2010, 09:05

NiGHt-LEshiY
Ну, можно ведь и с массивом строк работать - так веселее память забиваться будет

Deus_Ex_Machina
Капитан
Капитан
Сообщения: 492
Зарегистрирован: 23.05.2010
Благодарил (а): 14 раз
Поблагодарили: 43 раза
Контактная информация:

#8 Сообщение 05.12.2010, 14:16

Pr0Ger писал(а):olegv11
олимпиадные задачи ограничивают по времени и памяти, что-бы отсечь решение работающие перебором или хранящие массив возможных входных вариантов
Но они фэйлят в том, что возможные результаты можно сдампить в файл и беспалевно оттуда брать, причем поиск должен быть быстрее чем перебор.

Ответить