1 for (int c1
= 2; c1
< 3 * M
; c1
+= 1) {
4 for (int c3
= (c1
+ 1) / 3 + 1; c3
<= min(c1
- 2, M
); c3
+= 1)
5 for (int c5
= c1
- (c1
+ c3
) / 2 + 1; c5
<= min(c1
- c3
, c3
); c5
+= 1)
6 S3(c1
- c3
- c5
+ 1, c3
, c5
);
7 if (c1
+ 1 >= 3 * ((c1
- (c1
+ 3) / 3 + 1) / 2) && 3 * ((c1
- (c1
+ 3) / 3 + 1) / 2) + 1 >= c1
)
8 for (int c3
= ((c1
- (c1
+ 3) / 3 + 1) % 2) + (c1
+ 3) / 3 + 1; c3
<= min(c1
, M
); c3
+= 2)
9 S2((c1
- c3
+ 2) / 2, c3
);