Download
language ESSENCE 1.2.0
$ prob009.essence: Perfect Square Placement
$ Problem details available at http://www.csplib.org/Problems/prob009/
$ 05 September 2007
$
given sizemaster : int(1..)
given sizes : sequence of int(1..)
where sum([s*s | (_,s) <- sizes ]) = sizemaster*sizemaster
letting Index be domain int(0..sizemaster)
letting Squares be domain int(1..|sizes|)
find x, y : function (total) Squares --> Index
such that
forAll s : Squares . x(s) + sizes(s) < sizemaster /\ y(s) + sizes(s) < sizemaster,
forAll s1,s2 : Squares , s2 > s1 .
max({x(s1),x(s2)}) - min({x(s1)+sizes(s1),x(s2)+sizes(s2)}) >= 0 \/
max({y(s1),y(s2)}) - min({y(s1)+sizes(s1),y(s2)+sizes(s2)}) >= 0