2 for (int c0
= -4; c0
<= 3 * M
+ N
; c0
+= 1) {
3 if (3 * M
>= c0
+ 4 && (c0
+ 1) % 3 == 0) {
5 } else if (c0
>= 3 * M
) {
8 for (int c1
= max(-3 * M
+ c0
+ 3, (c0
+ 6) % 3); c1
<= min(N
- 1, c0
); c1
+= 3) {
10 S1(((c0
- c1
) / 3) + 1, c1
+ 1);
12 if (N
>= c0
+ 4 && c0
>= -3) {
14 } else if (3 * M
+ N
>= c0
+ 3 && c0
>= N
&& (N
- c0
) % 3 == 0) {
17 for (int c1
= max(-3 * M
+ c0
, (c0
+ 6) % 3); c1
<= min(N
, c0
); c1
+= 3)
18 S3((c0
- c1
) / 3, c1
);