param m : = 7;
set M := 1...m;
set n := 20
param N := 1...20;
param b { i in M};
param p {j in N};
var x {i in M; j in N}binary;
var C >=0;
maximize fc: Cmax;
s.t. ogr1 {i in M}: sum{j in N}p[j]*x[i,j];
s.t ogr2 {j in N}: sum{i in M}x[i,j]=1;
s.t. ogr3 {i in M}: sum{j in N}x[i,j]<=b[i];
s.t. ogr4{j in N:j<n}: sum{i in M}i*x[i,j]<=sum{i in M}i*x[i,j+1];
param b :=
1 3
2 4
3 5
4 4
5 1
6 4
7 3;
param p:=
1 2.1
2 1.5
3 1.7
4 1.2
5 1.9
6 1.5
7 1.1
8 1.7
9 2.4
10 1.5
11 1.4
12 1.1
13 5.1
14 3.2
15 1.0
16 1.5
17 0.1
18 0.7
19 1.0
20 3.1;
end;