this repo has no description
1int: n;
2
3enum Men = anon_enum(n);
4enum Women = anon_enum(n);
5
6array[Women, Men] of int: rankWomen;
7array[Men, Women] of int: rankMen;
8
9array[Men] of var Women: wife;
10array[Women] of var Men: husband;
11
12% assignment
13constraint forall (m in Men) (husband[wife[m]]=m);
14constraint forall (w in Women) (wife[husband[w]]=w);
15% ranking
16constraint forall (m in Men, o in Women) (
17 rankMen[m,o] < rankMen[m,wife[m]] ->
18 rankWomen[o,husband[o]] < rankWomen[o,m] );
19
20constraint forall (w in Women, o in Men) (
21 rankWomen[w,o] < rankWomen[w,husband[w]] ->
22 rankMen[o,wife[o]] < rankMen[o,w] );
23solve satisfy;
24
25output ["wives= \(wife)\nhusbands= \(husband)\n"];