Actual model
| 87 | public: |
| 88 | /// Actual model |
| 89 | Schur(const SchurOptions& opt) |
| 90 | : Script(opt), box(*this,opt.n,1,opt.c) { |
| 91 | int n = opt.n; |
| 92 | |
| 93 | // Iterate over balls and find triples |
| 94 | for (int i=1; i<=n; i++) |
| 95 | for (int j=1; i+j<=n; j++) |
| 96 | rel(*this, {box[i-1],box[j-1],box[i+j-1]}, IRT_NQ); |
| 97 | |
| 98 | // Break value symmetries |
| 99 | precede(*this, box, IntArgs::create(opt.c, 1)); |
| 100 | |
| 101 | branch(*this, box, INT_VAR_AFC_SIZE_MAX(opt.decay()), INT_VAL_MIN()); |
| 102 | } |
| 103 | /// Print solution |
| 104 | virtual void |
| 105 | print(std::ostream& os) const { |
nothing calls this directly
no test coverage detected