Download
%
% Magic Hexagon in MiniZinc.
%
% Prob023: Magic Hexagon
% http://www.comp.rgu.ac.uk/staff/ha/ZCSP/prob023/prob023.pdf
% http://www.cse.unsw.edu.au/~tw/csplib/prob/prob023/
%
%
% Model created by Hakan Kjellerstrand, hakank@bonetmail.com
% See also my MiniZinc page: http://www.hakank.org/minizinc
%
include "globals.mzn";
set of int: N = 1..19;
var N: a;
var N: b;
var N: c;
var N: d;
var N: e;
var N: f;
var N: g;
var N: h;
var N: i;
var N: j;
var N: k;
var N: l;
var N: m;
var N: n;
var N: o;
var N: p;
var N: q;
var N: r;
var N: s;
array[N] of var N: LD = [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s];
solve satisfy;
constraint
all_different(LD) /\
a + b + c = 38 /\
d + e + f + g = 38 /\
h + i + j + k + l = 38 /\
m + n + o + p = 38 /\
q + r + s = 38 /\
a + d + h = 38 /\
b + e + i + m = 38 /\
c + f + j + n + q = 38 /\
g + k + o + r = 38 /\
l + p + s = 38 /\
c + g + l = 38 /\
b + f + k + p = 38 /\
a + e + j + o + s = 38 /\
d + i + n + r = 38 /\
h + m + q = 38 /\
a < c /\
a < h /\
a < l /\
a < q /\
a < s /\
c < h
;
output
[
show(LD)
];