1 if ((2 * floord(P2
, 2) == P2
&& 2 * floord(P1
, 2) == P1
&& P2
>= 0 && P2
<= 3 && P1
>= 0 && P1
<= 3) || (2 * floord(P2
, 2) == P2
&& 2 * floord(P1
- 1, 2) + 1 == P1
&& P2
>= 0 && P2
<= 3 && P1
>= 0 && P1
<= 3) || (2 * floord(P2
- 1, 2) + 1 == P2
&& 2 * floord(P1
, 2) == P1
&& P2
>= 0 && P2
<= 3 && P1
>= 0 && P1
<= 3) || (2 * floord(P2
- 1, 2) + 1 == P2
&& 2 * floord(P1
- 1, 2) + 1 == P1
&& P2
>= 0 && P2
<= 3 && P1
>= 0 && P1
<= 3))
2 for (int c0
= P1
- 1; c0
<= 3; c0
+= 1)
3 if ((2 * floord(c0
, 2) == c0
&& P2
% 2 == 0 && 2 * floord(P1
- 1, 2) + 1 == P1
) || (2 * floord(c0
, 2) == c0
&& 2 * floord(P2
- 1, 2) + 1 == P2
&& 2 * floord(P1
- 1, 2) + 1 == P1
) || (2 * floord(c0
- 1, 2) + 1 == c0
&& P2
% 2 == 0 && P1
% 2 == 0) || (2 * floord(c0
- 1, 2) + 1 == c0
&& 2 * floord(P2
- 1, 2) + 1 == P2
&& P1
% 2 == 0))
4 for (int c2
= 0; c2
<= -((P1
+ 4) / 4) + 8; c2
+= 1)
5 if ((-2 * ((-P2
+ 4) / 4) + 2 * (P2
/ 4) + 2 == P2
&& 2 * floord(P2
- 1, 2) + 2 == P2
&& P2
<= 6 && 18 * floord(9 * P1
+ 17 * c0
+ 14 * c2
+ 3, 18) + 1 >= 9 * P1
+ 17 * c0
+ 14 * c2
) || (2 * floord(P2
- 1, 2) + 1 == P2
&& P2
+ 1 >= 0 && 18 * floord(9 * P1
+ 17 * c0
+ 14 * c2
+ 3, 18) + 1 >= 9 * P1
+ 17 * c0
+ 14 * c2
&& (-P2
+ 4) % 4 >= 1))
6 for (int c3
= 0; c3
<= -((P2
+ 4) / 4) + 8; c3
+= 1)
7 if ((5 * P2
+ 2 * c3
) % 9 <= 3 && 9 * ((4 * P2
+ 3) / 9 / 2) + 7 >= 2 * P2
&& 2 * P2
+ 1 >= 9 * ((4 * P2
+ 3) / 9 / 2))
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);