42 using namespace Gecode;
54 _w(
"-w",
"number of weeks",9),
55 _g(
"-g",
"number of groups",8),
56 _s(
"-s",
"number of players per group",4) {
62 int w(
void)
const {
return _w.value(); }
64 int g(
void)
const {
return _g.value(); }
66 int s(
void)
const {
return _s.value(); }
96 groups(*this,g*w,
IntSet::empty,0,g*s-1,s,s) {
100 SetVar allPlayers(*
this, 0,g*s-1, 0,g*s-1);
101 for (
int i=0;
i<w;
i++)
105 for (
int i=0;
i<groups.
size()-1;
i++)
106 for (
int j=
i+1; j<groups.
size(); j++)
109 if (opt.
model() == MODEL_SYMMETRY) {
120 for (
int j=0; j<w; j++) {
121 for (
int p=0; p < g*s; p++) {
123 for (
int i=0;
i<g;
i++)
130 for (
int j=0; j<w; j++) {
132 for (
int i=0;
i<g;
i++)
141 for (
int i=0;
i<w;
i++)
156 os <<
"Tournament plan" << std::endl;
158 for (
int j=0; j<w; j++) {
159 os <<
"Week " << j <<
": " << std::endl <<
" ";
160 os << schedule.
row(j) << std::endl;
166 groups.update(*
this, share, s.
groups);
171 return new Golf(share,*
this);
185 opt.
parse(argc,argv);
186 Script::run<Golf,DFS,GolfOptions>(
opt);