Male=0 proposes to Female=6 ... success! Male=1 proposes to Female=3 ... success! Male=2 proposes to Female=2 ... success! Male=3 proposes to Female=2 ... failed, next target will be 1st lady. Male=3 proposes to Female=7 ... success! Male=4 proposes to Female=7 ... failed, next target will be 1st lady. Male=4 proposes to Female=2 ... success, but Male=2 becomes single. Male=2 proposes to Female=2 ... failed, next target will be 1st lady. Male=2 proposes to Female=1 ... success! Male=5 proposes to Female=7 ... failed, next target will be 1st lady. Male=5 proposes to Female=6 ... failed, next target will be 2nd lady. Male=5 proposes to Female=4 ... success! Male=6 proposes to Female=1 ... failed, next target will be 1st lady. Male=6 proposes to Female=3 ... failed, next target will be 2nd lady. Male=6 proposes to Female=5 ... success! Male=7 proposes to Female=5 ... success, but Male=6 becomes single. Male=6 proposes to Female=5 ... failed, next target will be 3rd lady. Male=6 proposes to Female=2 ... failed, next target will be 4th lady. Male=6 proposes to Female=0 ... success! ==== Stable Marriage ==== Male=0[rank:0] <=> Female=6[rank:5] Male=1[rank:0] <=> Female=3[rank:1] Male=2[rank:1] <=> Female=1[rank:2] Male=3[rank:1] <=> Female=7[rank:3] Male=4[rank:1] <=> Female=2[rank:0] Male=5[rank:2] <=> Female=4[rank:0] Male=6[rank:4] <=> Female=0[rank:7] Male=7[rank:0] <=> Female=5[rank:3] Reference: marriaged pairs ================== (0, 6) (1, 3) : 0---3 1---6 (0, 6) (2, 1) : 0---1 2---6 (0, 6) (3, 7) : 0---7 3---6 (0, 6) (4, 2) : 0---2 4---6 (0, 6) (5, 4) : 0---4 5---6 (0, 6) (6, 0) : 0---0 6---6 (0, 6) (7, 5) : 0---5 7---6 (1, 3) (2, 1) : 1---1 2---3 (1, 3) (3, 7) : 1---7 3---3 (1, 3) (4, 2) : 1---2 4---3 (1, 3) (5, 4) : 1---4 5---3 (1, 3) (6, 0) : 1---0 6---3 (1, 3) (7, 5) : 1---5 7---3 (2, 1) (3, 7) : 2---7 3---1 (2, 1) (4, 2) : 2---2 4---1 (2, 1) (5, 4) : 2---4 5---1 (2, 1) (6, 0) : 2---0 6---1 (2, 1) (7, 5) : 2---5 7---1 (3, 7) (4, 2) : 3---2 4---7 (3, 7) (5, 4) : 3---4 5---7 (3, 7) (6, 0) : 3---0 6---7 (3, 7) (7, 5) : 3---5 7---7 (4, 2) (5, 4) : 4---4 5---2 (4, 2) (6, 0) : 4---0 6---2 (4, 2) (7, 5) : 4---5 7---2 (5, 4) (6, 0) : 5---0 6---4 (5, 4) (7, 5) : 5---5 7---4 (6, 0) (7, 5) : 6---5 7---0