, A (A1,..., An) B (B1,..., Bn).
A < B ,
A1 *... * An < B1 *... * Bn
, , , , :
(- 50, -100, 1) > (1, 2, 3)
-50 * (-100) * 1 = 5000 > 6 = 1 * 2 * 3
. , , k. (A1,..., Ak) (B1,..., Bk), , (A1,..., Ak,... An), , (B1,..., Bk,..., Bn). , , , . :
(C1,..., Ck), , (B1,..., Bk), (C1,..., Ck) - , (A1,..., Ak) (C1,..., Ck) .
, , (A1,..., Ak) < (B1,..., Bk), , , l , , A B. l , , ( , ). . , , (A1,..., Ak,..., Al) > (B1,..., Bk,..., Bl), , A B, , B A.
, :
class Rule {
int k;
int[] smallerCombinationIndexes;
int[] biggerCombinationIndexes;
List<Rule> exceptions;
}
, , . , , , , .. , , A B, A B, , (A1,..., Ak) (B1,..., Bk), , (A1,..., Ak) (B1,..., Bk) . . , : , , .