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];