1 if (P2
>= 0 && P2
<= 3 && P1
>= 0 && P1
<= 3)
2 for (int c0
= P1
- 1; c0
<= 3; c0
+= 1)
3 if (P1
+ 2 * floord(-P1
+ c0
- 1, 2) + 1 == c0
)
4 for (int c2
= 0; c2
<= -((P1
+ 4) / 4) + 8; c2
+= 1)
5 if ((9 * P1
+ c0
+ 4 * c2
+ 1) % 18 <= 4)
6 for (int c3
= 0; c3
<= -((P2
+ 4) / 4) + 8; c3
+= 1)
7 if ((5 * P2
+ 2 * c3
) % 9 <= 3)
8 if (c0
+ 1 == P1
&& (5 * P1
+ 2 * c2
) % 9 <= 2 && P1
>= 1) {
9 s0(P1
- 1, P2
, c2
, c3
, ((5 * P1
+ 2 * c2
) % 9) + 1, (-4 * P2
+ 2 * c3
+ 9) % 9);
10 } else if (c2
% 4 == 0 && c0
== 3 && P1
== 0)
11 s0(3, P2
, c2
, c3
, (-c2
+ 12) / 4, (-4 * P2
+ 2 * c3
+ 9) % 9);