#558. 铺放矩形块 Packing Rectangles

铺放矩形块 Packing Rectangles

题目描述

给定 4\red 4 个矩形块,找出一个最小的封闭矩形将这 4\red 4 个矩形块放入,但不得相互重叠。所谓最小矩形指该矩形面积最小。

img

4\red 4个矩形块中任一个矩形的边都与封闭矩形的边相平行,图1\red 1显示出了铺放4\red 4个矩形块的6\red 6种方案。这6\red 6种方案是唯一可能的基本铺放方案。因为其它方案能由基本方案通过旋转和镜像反射得到。

可能存在满足条件且有着同样面积的各种不同的封闭矩形,你应该输出所有这些封闭矩形的边长。

输入格式

共有4\red 4行。每一行用两个正整数来表示一个给定的矩形块的两个边长。矩形块的每条边的边长范围最小是1\red 1,最大是50\red{50}

输出格式

总行数为解的总数加1\red 1。第一行是一个整数,代表封闭矩形的最小面积(子任务A\red A)。接下来的每一行都表示一个解,由数P\red P和数Q\red Q来表示,并且PQ\red{P≤Q}(子任务B\red B)。

这些行必须根据P\red P的大小按升序排列,P\red P小的行在前,大的在后。且所有行都应是不同的。

样例

输入样例

1 2
2 3
3 4
4 5

输出样例

40
4 10
5 8