@Override
 public void unassigned(long iteration, ExamPlacement value) {
   super.unassigned(iteration, value);
   if (!isHard() && iIsSatisfied != isSatisfied()) {
     iIsSatisfied = !iIsSatisfied;
     ((ExamModel) value.variable().getModel())
         .addDistributionPenalty(iIsSatisfied ? -getWeight() : getWeight());
   }
 }