Фрезерні верстати
Fab лабораторія — це відкрита майстерня, де можна створити або виготовити практично будь-що, здебільшого за допомогою інструментів з комп'ютерним управлінням, таких як лазерний різак або 3D-принтер. Нещодавно фабрика FAU отримала фрезерний верстат з ЧПК. Цей верстат дозволяє різати або видаляти матеріал з поверхні заготовки за допомогою різних інструментів, керованих комп'ютерною програмою.
Мені стало цікаво, що відбувається, якщо кілька заготовок різної форми обробляються однією програмою фрезерування. Для спрощення припустимо, що у нас є лише двовимірні заготовки без отворів. Програма фрезерування складається з кількох кроків. Кожен крок описує, де фрезерний верстат повинен видалити матеріал з верхньої частини поверхні.
Вхідні дані
Перший рядок містить два цілі числа і , де — кількість деталей, а — кількість кроків у програмі фрезерування. Наступний рядок містить два цілі числа і , де — ширина, а — максимально можлива висота заготовки.
Кожен з наступних рядків описує одну деталь. Опис кожної деталі складається з цілих невід'ємних чисел, що визначають висоту поверхні в цьому стовпці.
Кожен з наступних рядків описує один крок фрезерування в програмі. Опис кожного кроку фрезерування складається з цілих невід'ємних чисел , що визначають кількість відрізаної поверхні в кожному стовпці (відносно висоти області фрезерування, тобто , а не відносно верху заготовки). Дивіться рисунок.
Вихідні дані
Для кожної заготовки виведіть один рядок, що містить цілих чисел, які визначають залишкову висоту поверхні (в тому ж порядку, як і у вхідних даних).
Приклади
Друга деталь у першому прикладі: вихідна деталь з подальшим фрезеруванням у кожному стовпці — значення в програмі фрезерування визначає вертикальне положення фрезерної головки.