module PCP.Solutions where

import PCP.Type

sol_001 = 
    ( [ 1 % 1, 2 % 1, 1 % 1 ]
    , [ [ 0, 0 ]
      , [ 1, 1, 2, 0 ]
      , [ 2, 2, 0, 1, 2, 0 ]
      , [ 2, 0, 0, 1, 0, 1, 2, 0 ]
      , [ 2, 0, 0, 2, 2, 0, 0, 1, 2, 0 ]
      ]
    , [ [ 0, 2, 2, 0, 0, 1, 2, 0, 1, 2 ]
      , [ 0, 2, 2, 2, 2, 0, 1, 2 ]
      , [ 0, 2, 2, 1, 1, 2 ]
      , [ 0, 2, 2, 0 ]
      , [ 0, 1 ]
      ]
    )

sol_0001 = 
    ( [ 3 % 1, 2 % 1, 1 % 1 ]
    , [ [ 0, 0, 0 ]
      , [ 1, 1, 1, 2, 0, 0 ]
      , [ 2, 2, 2, 0, 1, 1, 2, 0, 0 ]
      , [ 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 0, 0 ]
      , [ 2, 2, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 2, 0, 0 ]
      , [ 2, 0, 0, 0, 1, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 2, 0, 0 ]
      , [ 2, 0, 0, 1, 1, 1, 2, 1, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 2, 0, 0 ]
      ]
    , [ [ 0, 2, 2, 2, 1, 1, 1, 2, 2, 2, 0, 1, 1, 2, 0, 0, 1, 1, 1, 2, 1 ]
      , [ 0, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 0, 0, 1, 1, 1, 2, 1 ]
      , [ 0, 2, 2, 2, 1, 1, 1, 0, 0, 0, 1, 1, 1, 2, 1 ]
      , [ 0, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1 ]
      , [ 0, 2, 2, 2, 0, 1, 1, 2, 1 ]
      , [ 0, 1, 1, 1, 2, 1 ]
      , [ 0, 0, 1 ]
      ]
    )

sol_00001 =
    ( [ 3 % 1, 2 % 1, 1 % 1 ]
    , [ [ 0, 0, 0, 0 ]
      , [ 1, 1, 1, 1, 2, 0, 0, 0 ]
      , [ 2, 2, 2, 2, 0, 1, 1, 1, 2, 0, 0, 0 ]
      , [ 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 0, 0, 0 ]
      , [ 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 2, 0, 0, 0 ]
      , [ 2, 0, 0, 0, 0, 1, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 2, 0, 0, 0 ]
      , [ 2, 0, 0, 0, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 2, 0, 0, 0 ]
      ]
    , [ [ 0, 0, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 0, 1, 1, 1, 2, 0, 0, 0, 1, 1, 1, 1, 2, 1 ]
      , [ 0, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 1, 1, 1, 1, 2, 1 ]
      , [ 0, 0, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 2, 1 ]
      , [ 0, 0, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1 ]
      , [ 0, 0, 2, 2, 2, 2, 0, 1, 1, 1, 2, 1 ]
      , [ 0, 0, 1, 1, 1, 1, 2, 1 ]
      , [ 0, 0, 0, 1 ]
      ]
    )

sol_01011 = 
    ( [ 2 % 1, 2 % 1, 2 % 1 ]
    , [ [ 0, 1, 0, 1 ] -- 0
      , [ 1, 2, 1, 2, 2, 1, 0, 1 ] -- 0
      , [ 2, 0, 2, 0, 0, 2, 1, 2, 2, 1, 0, 1 ] -- 1
      , [ 2, 1, 2, 1, 2, 2, 2, 0, 0, 2, 1, 2, 2, 1, 0, 1 ] -- 5
      , [ 2, 1, 2, 1, 2, 0, 1, 0, 1, 1, 2, 0, 0, 2, 1, 2, 2, 1, 0, 1 ] -- 9
      , [ 2, 1, 2, 1, 2, 0, 1, 0, 1, 2, 0, 2, 0, 0, 2, 0, 0, 2, 1, 2, 2, 1, 0, 1 ] -- 12
      , [ 2, 1, 2, 1, 2, 0, 1, 0, 1, 2, 0, 2, 1, 2, 1, 2, 2, 0, 2, 0, 0, 2, 1, 2, 2, 1, 0, 1 ]
      ]
    , [ [ 1, 0, 1, 2, 0, 2, 0, 1, 2, 1, 0, 1, 0, 1, 1, 2, 1, 2, 2, 1, 0, 1, 1, 0, 2, 0, 0, 2 ]
      , [ 1, 0, 1, 2, 0, 2, 0, 1, 2, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 2, 0, 0, 2 ] -- 14
      , [ 1, 0, 1, 2, 0, 2, 0, 1, 2, 1, 0, 1, 0, 1, 2, 0, 2, 0, 0, 2 ] -- 14
      , [ 1, 0, 1, 2, 0, 2, 0, 1, 2, 1, 0, 1, 0, 1, 1, 2 ]  -- 14
      , [ 1, 0, 1, 2, 0, 2, 0, 1, 2, 1, 2, 2 ] -- 10
      , [ 1, 0, 1, 2, 0, 2, 0, 0 ] -- 7
      , [ 1, 0, 1, 1 ] -- 3
      ]
    )
