Diferente pentru problema/laundering intre reviziile #14 si #6

Diferente intre titluri:

B. Laundering
laundering

Diferente intre continut:

== include(page="template/taskheader" task_id="laundering") ==
Ieşi din bloc cu mare avânt, dar te opreşti, fiindcă te întâlneşti cu Băbel, proprietarul librăriei de la parter. Problema nu este atât că te-ai întâlnit tu cu el, ci că s-a întâlnit el cu tine. Este foarte trist fiindcă trebuie să închidă librăria: nu produce niciun ban, un defect care tinde să afecteze afacerile în general. Acum vrea să deschidă o altă afacere în acelaşi loc. Pentru a scăpa de vechea reputaţie (şi de ghinion) el ar dori să schimbe numele firmei în ceva _complet diferit_.
 
Formal, numele curent al firmei sale este un sir de litere mici ale alfabetului englez, sa il numim $A$. Daca noul nume va fi $B$, atunci el nu doreste sa existe niciun indice $i$ astfel incat al $i$-lea caracter din $A$ sa fie egal cu al $i$-lea caracter din $B$. Mai mult, fiindca are evidente probleme financiare, ar dori sa nu foloseasca alte litere decat cele din $A$, ci doar sa le permute pe acestea (lucru care va fi oricum dificil de realizat, fiindca sunt din fier). Dintre toate numele noi posibile, l-ar dori pe cel *minim lexicografic*, tot din motive de noroc.
 
Tu ţi-ai cam dat seama că Băbel nu are nicio şansă în afaceri din momentul în care a decis să monteze o masă de biliard în librărie. Dar dacă nu-l ajuţi acum, nu mai scapi de el câteva luni. Deci sarcina ta este următoarea:
Având un şir de caractere $A$, găseşte-i anagrama minimă lexicografic $B$ astfel încât $A$ şi $B$ să nu coincidă pe nicio poziţie sau constată că nu există o asemenea anagramă.
Se dă un şir $S$. Se cere să să găsească anagrama sa $A$ minimă lexicografic cu proprietatea că distanţa Hamming dintre $S$ şi $A$ este $|S|$. Dacă nu există o astfel de anagramă, răspunsul este $-1$.
h2. Date de intrare
Fişierul de intrare $laundering.in$ conţine pe prima linie valoarea $T$, reprezentând numărul de teste din fişier. Urmează $T$ linii, fiecare conţinând câte un şir $A$, reprezentând numele curent al firmei lui Băbel.
Fişierul de intrare $laundering.in$ conţine pe prima linie valoarea $T$, reprezentând numărul de teste din fişier. Urmează $T$ linii, fiecare conţinând câte un şir $S$.
h2. Date de ieşire
În fişierul de ieşire $laundering.out$ se vor afla $T$ linii, fiecare conţinând câte un şir $B$, reprezentând răspunsul pentru testul corespunzător, dacă acesta are soluţie sau valoarea $-1$ dacă cerinţa lui Băbel nu poate fi îndeplinită.
În fişierul de ieşire $laundering.out$ vei printa $T$ stringuri răspuns.
h2. Restricţii
* $1 ≤ T ≤ 100.000$
* Suma lungimilor lui $A$ în cadrul aceluiaşi fişier de intrare este cel mult $1.000.000$.
* $A$ va conţine doar litere mici ale alfabetului englez.
* Suma lungimilor lui $S$ în cadrul aceluiaşi fişier de intrare este cel mult $1.000.000$.
h2. Exemplu
table(example). |_. laundering.in |_. laundering.out |
| 3
| 2
ab
cra
zz
| ba
acr
-1
| .

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.