eolymp
bolt
Try our new interface for solving problems
Məsələlər

Фрезерные станки

Фрезерные станки

Fab лаборатория --- это открытая небольшая мастерская, где можно создать или изготовить практически все, что захотите, в основном с помощью инструментов с компьютерным управлением, таких как лазерный резак или 3D-принтер. Недавно фабрика FAU получила фрезерный станок с ЧПУ. Используя фрезерный станок, Вы можете резать или удалять материал с поверхности заготовки разными инструментами. Он управляется компьютерной программой. Иногда мне было интересно, что произойдет, если несколько заготовок разной формы будут отправлены через одну программу фрезерования. Для упрощения предположим, что у нас есть только двумерные заготовки без отверстий. Программа фрезерования состоит из нескольких шагов. Каждый шаг описывает, где фрезерный станок должен удалить материал (с помощью различных инструментов) с верхней части поверхности. \InputFile Первая строка состоит из двух целых чисел $w$ и $s~(1 \le w, s \le 10^4)$, где $w$ количество деталей, а $s$ количество шагов в программе фрезерования. Следующая строка состоит из двух целых чисел $x$ и $y~(1 \le x, y \le 100)$, где $x$ --- ширина, а $y$ --- максимально возможная высота заготовки. Каждая из следующих $w$ строк описывает одну деталь. Описание каждой детали состоит из $x$ целых неотрицательных чисел, определяющих высоту поверхности в этом столбце. Каждая из следующих $s$ строк описывает один шаг фрезерования в программе. Описание каждого шага фрезерования состоит из $x$ целых неотрицательных чисел $s_i~(0 \le s_i \le y)$, определяющих количество отрезанной поверхности. каждый столбец (относительно высоты области фрезерования, т.е. $y$, а не относительно верха заготовки). Смотрите рисунок. \OutputFile Для каждой заготовки выведите одну строку, содержащую $x$ целых чисел, определяющих оставшуюся высоту поверхности (в том же порядке, как и во входных данных). \Examples Вторая деталь в первом примере: исходная деталь с последующим фрезерованием в каждом столбце --- значение в программе фрезерования определяет вертикальное положение фрезерной головки. \includegraphics{https://static.e-olymp.com/content/66/6602279b4e46f84544671c155c6c143a55dff59b.gif}
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 128 MiB
Giriş verilənləri #1
2 1
3 4
4 4 4
4 2 3
2 3 0
Çıxış verilənləri #1
2 1 4
2 1 3
Giriş verilənləri #2
1 3
10 100
11 22 33 44 55 66 77 88 99 100
1 100 1 100 1 100 1 100 1 100
58 58 58 58 58 58 58 58 58 58
42 42 42 42 42 42 42 42 66 42
Çıxış verilənləri #2
11 0 33 0 42 0 42 0 34 0
Mənbə 2015 German Collegiate Programming Contest (GCPC), June 20, Problem I