После тяжелого дня в школе и изнуряющего домашнего задания, Слава решил расслабиться и поиграть в компьютер. Однако, в это же время домой вернулся папа Славы и попросил его о небольшом одолжении. Мальчику нужно было взять семейный реликтовый параллелепипед размера A × B × C и отнести его бабушке на хранение. По дороге Слава совсем замечтался и, к своему глубокому сожалению, поскользнулся, замарав все стенки параллелепипеда ровным слоем грязи. К счастью, семейный параллелепипед состоит из единичных кубиков (размера 1 × 1 × 1). Чтобы семья не разозлилась, он разобрал весь параллелепипед на кубики и решил помыть каждый из них.
Напевая песенку, промывая каждый кубик, он посчитал, сколько из всех маленьких кубиков 1 × 1 × 1 имеют ровно 0, 1, 2, 3, 4, 5 или 6 грязных стен. Слава не совсем уверен в своих подсчетах и хотел бы свериться с вашей программой ему.
Формат ввода
На вход даются три натуральных числа A, B, C (1 ≤ A, B, C ≤ 1000) — размеры параллелепипеда. Каждое число содержится в новой строке.
Формат вывода
Выведите семь целых неотрицательных чисел через пробел — количество единичных кубиков, у которых ровно 0, 1, 2, 3, 4, 5, 6 стен покрыто грязью соответственно.
n = 20;
var
pos,neg: integer;
i,k,x: integer;
ev,un: integer;
a,b: array [1..n] of integer;
begin
for i := 1 to n do
read(a[i]);
k := 0;
pos := 0;
neg := 0;
for i := 1 to n do
begin
ev := 0;
un := 0;
x := a[i];
if x <> 0 then
if x > 0 then
if (x < pos) or (pos = 0) then
pos := x
else
else
if (x > neg) or (neg = 0) then
neg := x;
x := abs(x);
while x <> 0 do
begin
if odd(x) then
un := un + 1
else
ev := ev + 1;
x := x div 10
end;
if un = ev then
begin
k := k + 1;
b[k] := a[i]
end
end;
writeln(pos,' ',neg);
for i := 1 to k do
write(b[i],' ')
end.