Diferente pentru problema/shopping intre reviziile #12 si #13

Nu exista diferente intre titluri.

Diferente intre continut:

== include(page="template/taskheader" task_id="shopping") ==
$Kokalaru47$ a intrat într-o nouă încurcătură! Prietenul său, $Marele Anonim$, şi-a cumpărat de curând o permutare $p$ de o frumuseţe nemaiauzită. Curios din fire, $Kokalaru47$ vrea să afle permutarea, însă $Marele Anonim$ i-a zis doar că are lungimea $N$ şi a decis să nu dezvăluie în mod direct alte informaţii. În schimb, îi va răspunde la mai multe întrebări.
$Kokalaru47$ a intrat într-o nouă încurcătură! Prietenul său, $Marele Anonim$, şi-a cumpărat de curând o permutare $p$ de o frumuseţe nemaiauzită. Curios din fire, $Kokalaru47$ vrea să afle permutarea. $Marele Anonim$ i-a zis doar că are lungimea $N$ şi că $1$ apare înaintea lui $2$ în permutarea $p$, şi a decis să nu dezvăluie în mod direct alte informaţii. În schimb, îi va răspunde la mai multe întrebări.
Într-o întrebare, $Kokalaru47$ îi dă $Marelui Anonim$ două stringuri $A$ şi $B$ de lungime $N$. $Marele Anonim$ creează apoi alte două stringuri $C = A{~p{~1~}~}A{~p{~2~}~}A{~p{~3~}~}...A{~p{~N~}~}$ şi $D = B{~p{~1~}~}B{~p{~2~}~}B{~p{~3~}~}...B{~p{~N~}~}$. În final, $Marele Anonim$ răspunde la întrebare cu lungimea prefixului maximal comun dintre $C$ şi $D$ în care există *cel mult o nepotrivire*.
Într-o întrebare, $Kokalaru47$ îi dă $Marelui Anonim$ două stringuri $A$ şi $B$ de lungime $N$. $Marele Anonim$ creează apoi alte două stringuri $C$ şi $D$ astfel încât $A=C{~p{~1~}~}C{~p{~2~}~}C{~p{~3~}~}...C{~p{~N~}~}$ şi $B=D{~p{~1~}~}D{~p{~2~}~}D{~p{~3~}~}...D{~p{~N~}~}$. În final, $Marele Anonim$ răspunde la întrebare cu lungimea prefixului maximal comun dintre $C$ şi $D$ în care există *cel mult o nepotrivire*.
Înainte de a-i pune $Marelui Anonim$ o întrebare, $Kokalaru47$ trebuie să cumpere ingredientele pentru întrebarea respectivă. El merge, aşadar, la Magazinul de Stringuri şi achizitionează $2*N$ litere mici ale alfabetului englez ({$N$} pentru stringul $A$ şi $N$ pentru stringul $B$). Se ştie că litera care apare pe pozitia $c$ în alfabet costă $c-1$ parai. De asemenea, ingredientele folosite la o întrebare nu pot fi refolosite la o altă întrebare ulterioară.
Prima dată se va citi valoarea $T$, ce reprezintă numărul testelor ce trebuie rezolvate. Pentru fiecare test, se va citi apoi $N$, reprezentând lungimea permutării căutate.
Programul vostru poate pune apoi întrebări sub forma $"? A B"$, unde $A$ si $B$ sunt stringuri de lungime $N$. Aceste intrebari vor fi scrise in stdout. Răspunsul la o întrebare va putea fi citit din stdin.
După aceea, programul vostru poate pune întrebări sub forma $"? A B"$, unde $A$ si $B$ sunt stringuri de lungime $N$. Aceste intrebari vor fi scrise in stdout. Răspunsul la o întrebare va putea fi citit apoi din stdin.
Când aţi găsit permutarea căutată $p$, afişaţi $"! p{~1~} p{~2~} p{~3~} ... p{~N~}"$.
* După fiecare operaţie trebuie afişat caracterul newline ({$'\n'$} sau {$endl$}) şi trebuie dat *flush la bufferul de ieşire* (folosind $cout.flush()$ sau $fflush(stdout)$).
* Dacă la o întrebare primiţi răspunsul $-1$, înseamnă că întrebarea nu a respectat formatul descris mai sus. În acest caz, trebuie să întrerupeţi interacţiunea imediat.
* Dacă la o întrebare primiţi răspunsul $-1$, înseamnă că întrebarea nu a respectat formatul descris mai sus. În acest caz, trebuie să întrerupeţi interacţiunea imediat.
h2. Restricţii şi punctare

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.