summaryrefslogtreecommitdiff
path: root/prolog/problems/clp_r/bounding_box_3
diff options
context:
space:
mode:
Diffstat (limited to 'prolog/problems/clp_r/bounding_box_3')
-rw-r--r--prolog/problems/clp_r/bounding_box_3/common.py14
-rw-r--r--prolog/problems/clp_r/bounding_box_3/en.py12
2 files changed, 26 insertions, 0 deletions
diff --git a/prolog/problems/clp_r/bounding_box_3/common.py b/prolog/problems/clp_r/bounding_box_3/common.py
new file mode 100644
index 0000000..631f017
--- /dev/null
+++ b/prolog/problems/clp_r/bounding_box_3/common.py
@@ -0,0 +1,14 @@
+id = 157
+group = 'clp_r'
+number = 67
+visible = True
+facts = None
+
+solution = '''\
+bounding_box([], Xa/Ya, Xb/Yb) :-
+ minimize(Xb - Xa),
+ minimize(Yb - Ya).
+bounding_box([X/Y|L], Xa/Ya, Xb/Yb) :-
+ { Xa =< X, X =< Xb,
+ Ya =< Y, Y =< Yb },
+ bounding_box(L, Xa/Ya, Xb/Yb).'''
diff --git a/prolog/problems/clp_r/bounding_box_3/en.py b/prolog/problems/clp_r/bounding_box_3/en.py
new file mode 100644
index 0000000..bc800b9
--- /dev/null
+++ b/prolog/problems/clp_r/bounding_box_3/en.py
@@ -0,0 +1,12 @@
+id = 157
+name = 'bounding_box/3'
+slug = 'find the smallest bounding box'
+
+description = '''\
+<p><code>bounding_box(Points, X1/Y1, X2/Y2)</code>: <code>X1/Y1</code> and <code>X2/Y2</code> are the bottom-left and top-right points defining the smallest bounding box containing all points in the list <code>Points</code>.
+<pre>
+ ?- bounding_box([4.5/2.3, 3.6/1.2, 6.7/0.1], X1/Y1, X2/Y2).
+ X1 = 3.6, Y1 = 0.1, X2 = 6.7, Y2 = 2.3.
+</pre>'''
+
+hint = {}