Em linguagem parcialmente natural, fiz algo assim:
Onde L indica Left, R, Right, e S indica State.
Estado original:
S1: (3C,3M)L|(0C,0M)R
1C conduz 1C, e retorna:
S2: (2C,3M)L|(1C,0M)R
1C conduz 1M, e retorna:
S3: (2C,2M)L|(1C,1M)R
1C conduz 1M, e retorna:
S4: (2C,1M)L|(1C,2M)R
1C conduz 1C, e retorna:
S5: (1C,1M)|(2C,2M)R
1C conduz 1M, e fica:
(0C,0M)L|(3C,3M)R.
Prova/Dica: manter os totais sempre em 3 para cada classe, somando (n)C Left + n(C) Right e (n)M Left + (n)M Right.
Conclusão: Ao que parece, em nenhum momento o número de C ficou maior que o número de M.
Está correta essa forma de fazer?