52 static const int n = 26;
67 g(
le[ 6]), h(
le[ 7]),
i(
le[ 8]), j(
le[ 9]), k(
le[10]),
77 rel(*
this, g+
l+e+e == 66,
opt.ipl());
80 rel(*
this, o+
b+o+e == 53,
opt.ipl());
84 rel(*
this, s+
a+
x+o+
p+h+o+
n+e == 134,
opt.ipl());
86 rel(*
this, s+o+
l+o == 37,
opt.ipl());
87 rel(*
this, s+o+
n+g == 61,
opt.ipl());
89 rel(*
this,
t+h+e+m+e == 72,
opt.ipl());
95 switch (
opt.branching()) {
115 return new Alpha(*
this);
121 for (
int i = 0;
i <
n;
i++) {
122 os << ((char) (
i+
'a')) <<
'=' <<
le[
i] << ((
i<
n-1)?
", ":
"\n");
124 os << std::endl <<
"\t";
143 Script::run<Alpha,DFS,Options>(
opt);
struct Gecode::@603::NNF::@65::@66 b
For binary nodes (and, or, eqv)
union Gecode::@603::NNF::@65 u
Union depending on nodetype t.
int p
Number of positive literals for node type.
struct Gecode::@603::NNF::@65::@67 a
For atomic nodes.
Node * x
Pointer to corresponding Boolean expression node.
IntVarArray le
Array for letters.
int main(int argc, char *argv[])
Main-function.
Alpha(const Options &opt)
Actual model.
virtual Space * copy(void)
Copy during cloning.
@ BRANCH_NONE
Choose variable left to right.
@ BRANCH_INVERSE
Choose variable right to left.
@ BRANCH_SIZE
Choose variable with smallest size.
Alpha(Alpha &s)
Constructor for cloning s.
static const int n
Alphabet has 26 letters.
virtual void print(std::ostream &os) const
Print solution.
Parametric base-class for scripts.
ArrayTraits< VarArgArray< Var > >::ArgsType slice(int start, int inc=1, int n=-1)
int size(void) const
Return size of array (number of elements)
void update(Space &home, VarArray< Var > &a)
Update array to be a clone of array a.
void parse(int argc, char *argv[])
Parse commandline arguments.
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVar x1)
Post propagator for .
void branch(Home home, const IntVarArgs &x, const BoolVarArgs &y, IntBoolVarBranch vars, IntValBranch vals)
Branch function for integer and Boolean variables.
Gecode toplevel namespace
void distinct(Home home, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
Post propagator for for all .
IntVarBranch INT_VAR_NONE(void)
Select first unassigned variable.
Post propagator for SetVar SetOpType SetVar SetRelType SetVar z
Post propagator for SetVar SetOpType SetVar y
IntValBranch INT_VAL_MIN(void)
Select smallest value.
IntVarBranch INT_VAR_SIZE_MIN(BranchTbl tbl=nullptr)
Select variable with smallest domain size.
Gecode::FloatVal c(-8, 8)
Gecode::IntArgs i({1, 2, 3, 4})