Старый фермер оставил трем своим сыновьям наследство — прямоугольное кукурузное поле, разбитое на n × m клеточек. Про каждую клеточку известно, сколько тонн кукурузы на ней растет. Своих сыновей фермер любил неодинаково, поэтому завещал разделить свое наследство на три части c суммарным количеством кукурузы A, B и C тонн.
Поле должно быть разделено двумя прямыми линиями, которые параллельны одной из сторон поля, а также друг другу. Линии должны проходить исключительно между клетками поля. Каждая полученная в результате часть поля должна состоять хотя бы из одной клеточки.
Ваша задача — найти количество способов разделить поле описанным выше способом, то есть провести две линии, рассекающие поле на три части таким образом, чтобы на одной из получившихся частей росло A тонн кукурузы, на другой B, а на оставшейся C.
В первой строке через пробел записаны целые числа n и m — размеры участка (1 ≤ n, m ≤ 50, max(n, m) ≥ 3). Далее следует описание поля: n строк, каждая из которых содержит по m целых чисел cij, записанных через пробел (0 ≤ cij ≤ 100) — количество кукурузы в каждой клетке (в тоннах). В последней строке через пробел записаны целые числа A, B, C (0 ≤ A, B, C ≤ 106).
Выведите ответ — количество способов разделить наследство так, чтобы на одной из получившихся частей росло A тонн кукурузы, на другой B, а на оставшейся C. Если не существует ни одного способа, выведите 0.
3 3
1 1 1
1 1 1
1 1 1
3 3 3
2
2 5
1 1 1 1 1
2 2 2 2 2
3 6 6
3
3 3
1 2 3
3 1 2
2 3 1
5 6 7
0
Линии раздела могут быть как горизонтальными, так и вертикальными, но должны быть параллельны друг другу.
Название |
---|