Задача С++
Книжная полка и динамические списки
Денис раскладывает свои книги на полку. Если на полке нет ни одной книги, то он ставит её, если есть, то ставит либо справа, либо слева от уже расставленных книг. Забирает книги он так же, то есть снимает только с правого или левого края. По заданной информации требуется смоделировать действия Дениса и вывести номера книг, которые он будет снимать.
Внимание! При решении задачи нельзя
использовать:
классы библиотеки STL
массивы
Формат входных данных
Входные данные содержат информацию об операциях, которые выполнил Денис, и заканчиваются символом EOF. Информация о каждой операции содержится в отдельной строке.
Каждая операция постановки книги на полку описывается парой чисел. Первое из них (1 или 2) показывает, книга ставится с левого края или с правого, соответственно. Второе целое число (от 0 до 109) обозначает номер книги. Номера книг могут повторяться.
Операции снятия книги с полки описывается одним числом. Число 3 означает, что книга снимается с левого края, 4 - с правого. Гарантируется, что для каждой операции снятия книги на полке будет хотя бы одна книга.
Формат результата
Для каждой операции снятия книги с полки вывести номер снимаемой книги.
Примеры
Входные данные
1 1
2 2
1 3
2 7
2 9
3
4
3
3
4
Результат работы
3
9
1
2
7
60 Мбайт * 8 = 480 Мбит - размер файла в мегабитах
480 Мбит * 1024 = 491520 Кбит - размер файла в килобитах
491520 / 2 = 245760 Кбит - половина файла
245760 Кбит / 256 = 960 секунд - время передачи первой половины файла
245760 Кбит / (256 / 2) = 245760 Кбит / 128 = 1920 секунд - время передачи втораой половины файла
960 с + 1920 с = 2880 секунд - общее время передачи
В одной минуте 60 секунд:
2880 / 60 = 48 минут - передан весь файл
Задание №2
Переведем килобайты в биты: N = 3750кбайт = 30720000бит
Вычислим скорость передачи информации: V = 30720000/120
V = 256000 бит/c
9*3*N - не может быть больше 54, т.е.
N может быть только 1 или 2. По условию х>=10 -> N=2 (N -порядок числа).
Поэтому искать нужно среди чисел от 11 до 54. Решение - число 15.
var n,m: integer;
begin
write('n = '); readln(n);
if n=2 then
begin m:=11;
repeat
if (m mod 10)*(m div 10)*3=m then
begin
writeln('число: ',m);
m:=55;
end;
m:=m+1;
until m>54;
end
else writeln('нет решения');
end.