1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | language ESSENCE 1.2.0 $ prob009.essence: Perfect Square Placement $ Problem details available at http://www.csplib.org/Problems/prob009/ $ 05 September 2007 $ given nbSizes : int (1..) letting sizes be domain int (1..nbSizes) letting container_size be sum i : sizes . 1 where ( sum s : sizes . s**2) = container_size**2 letting Index be domain int (0..container_size-1) letting Square be domain sizes find x, y : function ( total ) Square --> Index such that forAll s : Square . x(s) + s < container_size /\ y(s) + s < container_size, forAll s1,s2 : Square , s1 != s2 . max ({x(s1),x(s2)}) - min ({x(s1)+s1,x(s2)+s2}) >= 0 \/ max ({y(s1),y(s2)}) - min ({y(s1)+s1,y(s2)+s2}) >= 0 |