10 lines · c
1for (int c0 = 2; c0 < 3 * M; c0 += 1) {2 if ((c0 + 1) % 3 == 0)3 S1((c0 + 1) / 3);4 for (int c1 = (c0 + 1) / 3 + 1; c1 <= min(M, c0 - 2); c1 += 1)5 for (int c2 = -c1 + (c0 + c1 + 1) / 2 + 1; c2 <= min(c1, c0 - c1); c2 += 1)6 S3(c0 - c1 - c2 + 1, c1, c2);7 for (int c1 = -c0 + 2 * ((2 * c0 + 1) / 3) + 2; c1 <= min(M, c0); c1 += 2)8 S2(((c0 - c1) / 2) + 1, c1);9}10