================================================================================
 プログラム
================================================================================

REM プログラムはここから

REM ====================================
REM 数学の問題『第112回』
REM ====================================

REM ------------------------------------
REM (sub)マッチ棒の並んだ状態を作る
REM ------------------------------------

SUB henka
   LET  a$=""
   FOR k=1 TO 2*n
      IF a(k) = 1 THEN
         LET  a$=a$&"I"
      ELSEIF a(k) = 2 THEN
         LET  a$=a$&"X"
      ELSE
         LET  a$=a$&" "
      END IF
   NEXT k

END SUB

REM ------------------------------------
REM 初期処理
REM ------------------------------------

DIM a(100)
LET  a$=""
LET  l$=""

LET  b = 0
LET  b$=""

INPUT PROMPT "( 3 < n <= 50) ? ":n

FOR i=1 TO 2*n
   LET  a(i) = 1
   LET  a$=a$&"I"
   LET  l$=l$&"-"
NEXT i

PRINT "               ";l$
PRINT "                        1         2         3         4         5         6         7         8         9         0"
PRINT "               1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
PRINT "(  0) ---, --  ";a$


REM ------------------------------------
REM 1手目から n-4手目まで
REM ------------------------------------

IF n>5 THEN
   LET  imin = 11
ELSE
   LET  imin = 10
END IF

FOR i=2*n TO imin STEP -1
   IF a(i) = 1 THEN
      LET  a$=""
      LET  cnt = 0
      FOR j=i-1 TO 1 STEP -1
         IF (a(j) = 1) AND (cnt = 2) THEN
            LET  a(i)=a(i)+a(j)
            LET  a(j)=0

            CALL henka

            LET  b=b+1
            PRINT USING "(###) ###, 右  ":b,j;
            PRINT a$
            EXIT FOR
         ELSE
            LET  cnt = cnt + a(j)
         END IF
      NEXT j
   END IF
NEXT i


REM ------------------------------------
REM n-3手目
REM ------------------------------------

LET  cnt = 0
FOR i=5 TO 2*n
   IF (a(i) = 1) AND (cnt = 2) THEN

      LET  a(i)=a(i) + a(4)
      LET  a(4)=0

      CALL henka

      PRINT USING "(###) ###, 右  ":n-3,4;
      PRINT a$
      EXIT FOR
   ELSE
      LET cnt = cnt + a(i)
   END IF
NEXT i

REM ------------------------------------
REM n-2手目
REM ------------------------------------

LET  a(2) = a(2) + a(6)
LET  a(6) = 0

CALL henka

PRINT USING "(###) ###, 左  ":n-2,6;
PRINT a$


REM ------------------------------------
REM n-1手目
REM ------------------------------------

LET  a(1) = a(1) + a(3)
LET  a(3) = 0

CALL henka

PRINT USING "(###) ###, 左  ":n-1,3;
PRINT a$

REM ------------------------------------
REM n手目
REM ------------------------------------

FOR i=6 TO 2*n
   IF a(i) = 1 THEN
      LET  a(i) = a(i) + a(5)
      LET  a(5) = 0

      CALL henka

      PRINT USING "(###) ###, 右  ":n,5;
      PRINT a$
      EXIT FOR
   END IF
NEXT i

PRINT "               ";l$
PRINT

END

REM プログラムはここまで





================================================================================
 出力結果
================================================================================


( 3 < n <= 50) ? 4
               --------
                        1         2         3         4         5         6         7         8         9         0
               1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
(  0) ---, --  IIIIIIII
(  1)   4, 右  III IIXI
(  2)   6, 左  IXI I XI
(  3)   3, 左  XX  I XI
(  4)   5, 右  XX    XX
               --------



( 3 < n <= 50) ? 5
               ----------
                        1         2         3         4         5         6         7         8         9         0
               1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
(  0) ---, --  IIIIIIIIII
(  1)   7, 右  IIIIII IIX
(  2)   4, 右  III II XIX
(  3)   6, 左  IXI I  XIX
(  4)   3, 左  XX  I  XIX
(  5)   5, 右  XX     XXX
               ----------



( 3 < n <= 50) ? 6
               ------------
                        1         2         3         4         5         6         7         8         9         0
               1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
(  0) ---, --  IIIIIIIIIIII
(  1)   9, 右  IIIIIIII IIX
(  2)   7, 右  IIIIII I IXX
(  3)   4, 右  III II X IXX
(  4)   6, 左  IXI I  X IXX
(  5)   3, 左  XX  I  X IXX
(  6)   5, 右  XX     X XXX
               ------------



( 3 < n <= 50) ? 20
               ----------------------------------------
                        1         2         3         4         5         6         7         8         9         0
               1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
(  0) ---, --  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
(  1)  37, 右  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIX
(  2)  35, 右  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII I IXX
(  3)  33, 右  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII I I XXX
(  4)  31, 右  IIIIIIIIIIIIIIIIIIIIIIIIIIIIII I I X XXX
(  5)  29, 右  IIIIIIIIIIIIIIIIIIIIIIIIIIII I I X X XXX
(  6)  27, 右  IIIIIIIIIIIIIIIIIIIIIIIIII I I X X X XXX
(  7)  25, 右  IIIIIIIIIIIIIIIIIIIIIIII I I X X X X XXX
(  8)  23, 右  IIIIIIIIIIIIIIIIIIIIII I I X X X X X XXX
(  9)  21, 右  IIIIIIIIIIIIIIIIIIII I I X X X X X X XXX
( 10)  19, 右  IIIIIIIIIIIIIIIIII I I X X X X X X X XXX
( 11)  17, 右  IIIIIIIIIIIIIIII I I X X X X X X X X XXX
( 12)  15, 右  IIIIIIIIIIIIII I I X X X X X X X X X XXX
( 13)  13, 右  IIIIIIIIIIII I I X X X X X X X X X X XXX
( 14)  11, 右  IIIIIIIIII I I X X X X X X X X X X X XXX
( 15)   9, 右  IIIIIIII I I X X X X X X X X X X X X XXX
( 16)   7, 右  IIIIII I I X X X X X X X X X X X X X XXX
( 17)   4, 右  III II X I X X X X X X X X X X X X X XXX
( 18)   6, 左  IXI I  X I X X X X X X X X X X X X X XXX
( 19)   3, 左  XX  I  X I X X X X X X X X X X X X X XXX
( 20)   5, 右  XX     X X X X X X X X X X X X X X X XXX
               ----------------------------------------