aboutsummaryrefslogtreecommitdiff
path: root/day04/part2.mzn
diff options
context:
space:
mode:
Diffstat (limited to 'day04/part2.mzn')
-rw-r--r--day04/part2.mzn29
1 files changed, 29 insertions, 0 deletions
diff --git a/day04/part2.mzn b/day04/part2.mzn
new file mode 100644
index 0000000..ea5bbb1
--- /dev/null
+++ b/day04/part2.mzn
@@ -0,0 +1,29 @@
+include "globals.mzn";
+
+par set of int: range;
+
+array[0..5] of var 0..9: digits;
+var range: code;
+
+constraint
+ code =
+ digits[0] * 100000 +
+ digits[1] * 10000 +
+ digits[2] * 1000 +
+ digits[3] * 100 +
+ digits[4] * 10 +
+ digits[5];
+
+constraint
+ exists (i in 0..4) (
+ digits[i] == digits[i+1] /\
+ if i > 0 then digits[i-1] != digits[i] else true endif /\
+ if i < 4 then digits[i+2] != digits[i] else true endif
+ );
+
+constraint
+ increasing(digits);
+
+output [show(code)];
+
+solve satisfy;