this repo has no description
1/*** 2!Test 3expected: 4- !Result 5 solution: !Solution 6 a: 5 7 b: 13 8 c: 9 9 d: 16 10 e: 20 11 f: 4 12 g: 24 13 h: 21 14 i: 25 15 j: 17 16 k: 23 17 l: 2 18 m: 8 19 n: 12 20 o: 10 21 p: 19 22 q: 7 23 r: 11 24 s: 15 25 t: 3 26 u: 1 27 v: 26 28 w: 6 29 x: 22 30 y: 14 31 z: 18 32***/ 33 34%----------------------------------------------------------------------------- 35% Alphabet puzzle, a well-known cryptoarithmetic puzzle 36% 37% Guido Tack, tack@gecode.org 38% 2007-02-22 39% 40% Ported from the Gecode example 41% 42%----------------------------------------------------------------------------- 43 44include "globals.mzn"; 45 46var 1..26: a; 47var 1..26: b; 48var 1..26: c; 49var 1..26: d; 50var 1..26: e; 51var 1..26: f; 52var 1..26: g; 53var 1..26: h; 54var 1..26: i; 55var 1..26: j; 56var 1..26: k; 57var 1..26: l; 58var 1..26: m; 59var 1..26: n; 60var 1..26: o; 61var 1..26: p; 62var 1..26: q; 63var 1..26: r; 64var 1..26: s; 65var 1..26: t; 66var 1..26: u; 67var 1..26: v; 68var 1..26: w; 69var 1..26: x; 70var 1..26: y; 71var 1..26: z; 72 73constraint 74 b+a+l+l+e+t = 45 /\ 75 c+e+l+l+o = 43 /\ 76 c+o+n+c+e+r+t = 74 /\ 77 f+l+u+t+e = 30 /\ 78 f+u+g+u+e = 50 /\ 79 g+l+e+e = 66 /\ 80 j+a+z+z = 58 /\ 81 l+y+r+e = 47 /\ 82 o+b+o+e = 53 /\ 83 o+p+e+r+a = 65 /\ 84 p+o+l+k+a = 59 /\ 85 q+u+a+r+t+e+t = 50 /\ 86 s+a+x+o+p+h+o+n+e = 134 /\ 87 s+c+a+l+e = 51 /\ 88 s+o+l+o = 37 /\ 89 s+o+n+g = 61 /\ 90 s+o+p+r+a+n+o = 82 /\ 91 t+h+e+m+e = 72 /\ 92 v+i+o+l+i+n = 100 /\ 93 w+a+l+t+z = 34; 94 95constraint 96 alldifferent([a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z]); 97 98solve satisfy; 99 100output [ 101 "a = ", show(a), 102 "\tb = ", show(b), 103 "\tc = ", show(c), 104 "\td = ", show(d), 105 "\te = ", show(e), 106 "\tf = ", show(f), 107 "\ng = ", show(g), 108 "\th = ", show(h), 109 "\ti = ", show(i), 110 "\tj = ", show(j), 111 "\tk = ", show(k), 112 "\tl = ", show(l), 113 "\nm = ", show(m), 114 "\tn = ", show(n), 115 "\to = ", show(o), 116 "\tp = ", show(p), 117 "\tq = ", show(q), 118 "\tr = ", show(r), 119 "\ns = ", show(s), 120 "\tt = ", show(t), 121 "\tu = ", show(u), 122 "\tv = ", show(v), 123 "\tw = ", show(w), 124 "\tx = ", show(x), 125 "\ny = ", show(y), 126 "\tz = ", show(z), 127 "\n" 128];