puzzle

Time limit: 0.02s Memory limit: 4MB Input: puzzle.in Output: puzzle.out

Unul dintre jocurile preferate ale lui Temistocle este un puzzle în care el are la dispoziţie un cuvânt, fiecare literă a acestuia fiind scrisă pe câte o plăcuţă. Iniţial, toate plăcuţele sunt amestecate şi aşezate într-o ordine oarecare pe un suport liniar, poziţiile plăcuţelor fiind numerotate de la stânga la dreapta, începând cu 11.

Dacă se alege o plăcuţă drept pivot, se obţin două grupe:

  • grupa 11 - formată din toate plăcuţele din stânga plăcuţei-pivot, inclusiv aceasta;
  • grupa 22 - formată din toate plăcuţele din dreapta plăcuţei-pivot, fără aceasta.

După alegerea plăcuţei-pivot, toate plăcuţele din grupa 11, dacă există, se deplasează circular spre stânga cu exact o poziţie, iar toate plăcuţele din grupa 22, dacă există, se deplasează circular spre dreapta, cu exact o poziţie, ca în figura de mai jos, după care plăcuţele se renumerotează, de la stânga la dreapta, începând cu 11.

Cerință

Scopul jocului este ca prin alegerea unui şir potrivit de plăcuţe-pivot să se obţină o aşezare a plăcuţelor, astfel încât cuvântul format din literele scrise pe acestea, de la stânga la dreapta, să fie identic cu cuvântul corect.

Date de intrare

În fişierul puzzle.in se află

  • pe prima linie, cuvântul corect;
  • pe a doua linie, cuvântul format prin aşezarea iniţială a plăcuţelor.

Date de ieşire

În fişierul puzzle.out se vor scrie, separate prin câte un spaţiu, numerele naturale, reprezentând poziţiile plăcuţelor-pivot, în ordinea alegerii lor. Şirul se încheie cu numărul 00, care nu corespunde niciunei plăcuţe, ci reprezintă finalul jocului.

Restricții și precizări

  • Fiecare cuvânt are cel mult 250250 de litere.
  • Dacă există mai multe soluţii, se va furniza una singură, nu neapărat optimă.

Exemplul 1

puzzle.in

abc
bac

puzzle.out

2 0

Explicație

pivot - 22
ba | c \rightarrow ab | c

Exemplul 2

puzzle.in

abcabc
aabbcc

puzzle.out

6 2 2 0

Explicație

pivot - 66
aabbcc | \rightarrow abbcca |
pivot - 22
ab | bcca \rightarrow ba | abcc
pivot - 22
ba | abcc \rightarrow ab | cabc

Exemplul 3

puzzle.in

xyz
xyz

puzzle.out

0

Explicație

Cuvântul corespunzător plăcuţelor este cel corect.

Log in or sign up to be able to send submissions!