1 | for (int c0 = 5; c0 <= 5 * M; c0 += 1) { |
2 | for (int c1 = max(2, floord(-M + c0, 4)); c1 < min(-((5 * M - c0 + 1) % 2) + M, (c0 + 1) / 3 - 2); c1 += 1) |
3 | for (int c2 = max(1, -M - c1 + (M + c0) / 2 - 2); c2 < min(c1, -2 * c1 + (c0 + c1) / 2 - 2); c2 += 1) |
4 | S1(c0 - 2 * c1 - 2 * c2 - 5, c1, c2); |
5 | for (int c1 = max(1, floord(-M + c0, 4)); c1 < (c0 + 1) / 5; c1 += 1) |
6 | S2(c0 - 4 * c1 - 3, c1); |
7 | if (c0 % 5 == 0) |
8 | S4(c0 / 5); |
9 | for (int c1 = max(-3 * M - c0 + 3 * ((M + c0) / 2) + 1, -((c0 - 1) % 3) + 3); c1 < (c0 + 1) / 5; c1 += 3) |
10 | S3((c0 - 2 * c1 - 1) / 3, c1); |
11 | } |
12 | |