aranjare

Time limit: 0.1s Memory limit: 2MB Input: aranjare.in Output: aranjare.out

La festivitatea de deschidere a ONI Ploiesti, Gigel, mare amator de probleme de logica a observat ca primul rand din sala este format din 2N+22 \cdot N + 2 scaune, numerotate de la stanga la dreapta de la 11 la 2N+22 \cdot N + 2. Pe acest rand s-au asezat, intr-o ordine oarecare, NN baieti si NN fete, cele doua scaune ramase libere fiind alaturate.

Imediat Gigel inventeaza o problema. Sa consideram ca singura mutare posibila este ca doi elevi care stau pe scaune alaturate sa se ridice si sa se aseze (in aceeasi ordine) pe cele doua locuri libere.

Problema consta in determinarea unei secvente de mutari dupa executarea carora toate fetele sa fie grupate in stanga randului, toti baietii sa fie grupati in dreapta, iar cele doua locuri libere sa separe fetele de baieti. 

Cerința

Cunoscandu-se valoarea NN, precum si aranjarea initiala a elevilor, sa se determine o secventa de mutari care sa conduca in final la aranjarea descrisa in enuntul problemei.

Date de intrare

Fisierul de intrare aranjare.in contine pe prima linie numarul natural NN. Linia a doua a fisierului de intrare contine un sir de 2N+22 \cdot N + 2 caractere (NN caractere F, NN caractere B si doua caractere alaturate S) care reprezinta aranjarea initiala a elevilor pe rand si cele doua locuri libere. Mai exact, F indica un loc ocupat de o fata, B un loc ocupat de un baiat, iar SS reprezinta cele doua scaune libere.

Date de ieșire

Fisierul de iesire aranjare.out va contine mutarile din secventa determinata, in ordine, cate o mutare pe o linie. O mutare este descrisa printr-o valoare naturala K(1K<2N+2)K (1 \leq K \lt 2 \cdot N + 2) cu semnificatia "se vor muta pe scaunele libere elevii situati pe scaunele KK si K+1K + 1".

Restricții și precizări

  • 3N5 0003 \leq N \leq 5 \ 000
  • Pentru datele de test exista totdeauna solutie. Solutia nu este unica.

Exemplul 1

aranjare.in

3
FBSSFBFB

aranjare.out

7
2
5
3
6
1
7
3
6
4

Explicație

Se vor obtine pe rand configuratiile:

  • FBFBFBSS
  • FSSBFBBF
  • FFBBSSBF
  • FFSSBBBF
  • FFBBBSSF
  • SSBBBFFF
  • FFBBBFSS
  • FFSSBFBB
  • FFFBBSSB
  • FFFSSBBB

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