Hi,
you could use the pack constraint.
using CP;
int m = 100;
int n = 100;
dvar int l[j in 1..m] in 0..500;
dvar int p[i in 1..n] in 1..m;
dvar int nb;
int w[1..n] = [i : 50 | i in 1..n];
minimize nb;
subject to {
nb==m-count(l,0);
pack(l, p, w, nb);
}
regards
#DecisionOptimization#OPLusingCPLEXOptimizer