1 for (int c0 = 3; c0 < 2 * M; c0 += 1) { 2 for (int c1 = c0 / 2 + 2; c1 <= M; c1 += 1) 3 for (int c3 = c0 / 2 + 1; c3 < min(c0, c1); c3 += 1) 4 S1(c3, c0 - c3, c1); 5 for (int c1 = max(1, -M + c0); c1 < (c0 + 1) / 2; c1 += 1) 6 S2(c0 - c1, c1); 7 for (int c1 = c0 / 2 + 2; c1 <= M; c1 += 1) 8 for (int c3 = c0 / 2 + 1; c3 < min(c0, c1); c3 += 1) 9 S3(c3, c0 - c3, c1); 10 } 11