La festivitatea de deschidere a ONI Ploiesti, Gigel, mare amator de probleme de logica a observat ca primul rand din sala este format din scaune, numerotate de la stanga la dreapta de la la . Pe acest rand s-au asezat, intr-o ordine oarecare, baieti si 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 , 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 . Linia a doua a fisierului de intrare contine un sir de caractere ( caractere F
, 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 cu semnificatia "se vor muta pe scaunele libere elevii situati pe scaunele si ".
Restricții și precizări
- 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