На складе хранятся коробки с различной техникой, каждая коробка имеет четырехзначный уникальный серийный номер. Разновидности техники:
T – телевизоры
V - видеомагнитофоны
R – радио
F – вентиляторы.
Склад позволяет хранить до N рядов коробок высотой не более M коробок.
Пример склада из 6-ти рядов высотой не более 4 коробок:
[0008,T]
[0007,T]
[0002,T] [0006,T] [0011,T] [0014,T]
[0001,T] [0005,T] [0010,T] [0013,T]
Поступление и расход техники подчиняется следующим правилам:
операции выполняются только над одной коробкой;
взять можно только верхнюю коробку из ряда;
поставить коробку можно на любой незанятый ряд, либо на верхнюю коробку непустого ряда (дополнительные ограничения смотрите в индивидуальных заданиях).
Запрещается создавать коробки, не принадлежащие складу и хранить их вне склада. Массивы коробок и массивы указателей на коробки не создавать. память под коробки должна выделяться динамически.
Режим заполнения склада - startFillingWarehouse(0);
Создать первоначальное состояние склада на основе исходных данных. Исходные данные соответствуют складу, в котором коробки хранятся в беспорядке, т.е. в одном ряду могут находиться коробки с различной техникой (ставить в один ряд коробки с разной техникой разрешается).
После заполнения склада напечатать его «изображение» - showWarehouse();
Режим переноса коробок - startBoxTransferring (0, 0, 0, 0, aTV | aVCR | aRadio | aFan, 0);
Перевернуть коробки в каждом ряду, т.е. поменять местами нижнюю коробку с верхней и т.д. Коробки, не должны храниться вне склада, их можно только переставлять по одной внутри склада.
Если невозможно переставить коробки, напечатать сообщение «no solution»; иначе напечатать изображение склада - showWarehouse();
Режим очистки склада - startEmptyingWarehouse();
Изъять из склада все коробки и уничтожить их.
После очистки склада напечатать его «изображение» - showWarehouse();
Формат входных данных:
[N] [M]
[крайний левый вертикальный ряд]
[промежуточный вертикальный ряд]
[крайний правый вертикальный ряд]
N – кол-во рядов, целое число [1, 10]
M – кол-во коробок в ряду, целое число [1, 10]
Дан код, нужно его переделать и совместить с файлом lib, или же Вы можете написать свой код, как Вам будет удобнее)
§1. о системах счисления.
n4. развернутая форма записи числаиз курса вам известно, что цифры десятичной записи числа – это просто коэффициенты его представления в виде суммы степеней числа – основания системы счисления:
25076 = 2*10000 + 5*1000 + 0*100 + 7*10 + 6*1 = 2*104 +5*103 + 0*102 +7*101+6*100
при переводе чисел из десятичной системы счисления в римскую мы и воспользовались этим правилом (444 = 400 + 40 + 4; 2986 = 2000 + 900 + 80 + 6).
при записи чисел значение каждой цифры зависит от ее положения. место для цифры в числе называется разрядом, а количество цифр в числе разрядностью. на самом деле числа можно записывать как сумму степеней не только числа 10, но и любого другого натурального числа, большего 1.
определение. развернутой формой записи числа называется такая запись: а4а3а2а1а0 = а4*q4 + a3*q3 + a2*q2 + a1*q1 + a0*q0 , где а4,а3,а2,а1,а0 –цифры числа, q –основание степени.
пример1. получить развернутую форму числа 7512410.
решение:
а4 = 7, а3 = 5, а2 =1 ,а1 =2, а0 =4, q=10
4 3 2 1 0
75 12410 = 7*104 + 5*103 + 1*102 + 2*101 + 4*100.
пример2. получить развернутую форму числа 1123.
решение:
2 1 0
1123 = 1*32 + 1*31 +2*30
пример3. получить развернутую форму числа 176,218.
решение: 21 0-1-2а8=176, 218=1*82+7*81+6*80+2*8-1+1*8-2 для самостоятельной работы: 1. запишите в развернутом виде числа: а8=143511,62а2=100111а10=143,511а16=1а3,5с12. запишите в свернутой форме число: 9*101+1*100+5*10-1+3*10-2a*162+1*161+c*160+3*16-136^17+66^6-6=66^6+(6^2)^12-6=66^6+6^(2*12)-6=66^6+6^24-6^1=(1*6^36+1*6^24)-1*6^1=1000000000001000000000000000000000000^6-10^6=1000000000000555555555555555555555550^6
Как видим, была разность двух чисел в шестеричной системе счисления.
Первое число состояло из двух единиц и кучи нулей.
Вторая единица- после неё было 24 нуля (т.к. в шестеричной системе и есть единица с 24-мя нулями).
Потом мы вычли из этого единицу с одним нулём.
Получается, у нас из этих 24-ёх нулей, последний останется, а вместо остальных 23-ёх будут стоять пятёрки. Ну, а вместо второй единицы будет ноль.
Итого, в этой записи будет 23 пятёрки.