1if (ub >= lb)
2  for (int c0 = 1; c0 <= ub; c0 += 1)
3    for (int c1 = c0; c1 <= n; c1 += 1) {
4      if (lb >= c0 + 1) {
5        s3(c0, c1, lb, c0, c1);
6      } else if (c1 >= c0 + 1) {
7        s0(c0, c1);
8        if (n >= ub + 1)
9          s2(c0, c1);
10      }
11      for (int c3 = max(c0, lb); c3 <= ub; c3 += 1)
12        s1(c0, c1, c3);
13    }
14