head section Integer getN() Integer getM() Integer getMetrosRequeridos(Integer i) Integer getMetrosDisponibles(Integer j) Integer incompatible(Integer i, Integer k) Integer n = getN() Integer m = getM() goal section max sum(x[i,j], i in 0 .. n, j in 0 .. m) constraints section sum(x[i,j], j in 0 .. m) <= 1, i in 0 .. n sum(getMetrosRequeridos(i) x[i,j], i in 0 .. n) <= getMetrosDisponibles(j), j in 0 .. m x[i,j] + x[k,j] <= 1, i in 0 .. n, k in 0 .. n, j in 0 .. m | incompatible(i,k) = 1 bin x[i,j], i in 0 .. n, j in 0 .. m