Diferente pentru problema/bitsort intre reviziile #2 si #8

Nu exista diferente intre titluri.

Diferente intre continut:

Se cere să se reordoneze un şir de biţi specificat. Singura operaţie permisă este interschimbarea unei perechi de biţi adiacenţi. Scrieţi un program care să calculeze numărul minim de interschimbări necesare.
Şirul iniţial de biţi este reprezentat de o secvenţă de biţi, pe când şirul ţintă (final) este dat prin codul lungimilor. Codul lungimilor unui şir de biţi este secvenţa de lungimi ale numărului maxim de 0 sau 1 în şirul de biţi. De exemplu codul lungimilor şirului $'011100'$ este $'1 3 2'$. De remarcat că există două şiruri de biţi diferite cu acelaşi cod al lungimilor, unul începând cu 0, iar celălalt cu 1, şirul ţintă fiind oricare dintre ele.
Şirul iniţial de biţi este reprezentat de o secvenţă de biţi, pe când şirul ţintă (final) este dat prin codul lungimilor. Codul lungimilor unui şir de biţi este secvenţa de lungimi ale numărului maximal de 0 sau 1 în şirul de biţi. De exemplu codul lungimilor şirului $'011100'$ este $'1 3 2'$. De remarcat că există două şiruri de biţi diferite cu acelaşi cod al lungimilor, unul începând cu 0, iar celălalt cu 1, şirul ţintă fiind oricare dintre ele.
În primul exemplu şirul de biţi $'100101'$ trebuie reordonat astfel încât să aibă codul lungimilor $'1 3 2'$, ceea ce înseamnă fie $'011100'$, fie $'100011'$. Pentru $'011100'$ sunt necesare 4 interschimbări, iar pentru $'100011'$ doar o singură interschimbare, deci răspunsul este 1.
h2. Date de intrare
Fişierul de intrare $bitsort.in$ ...
Fişierul de intrare $bitsort.in$ conţine mai multe linii de test. Fiecare exemplu de test este format din trei linii. Prima linie conţine doi întregi $N$ şi $M$ separaţi printr-un spaţiu. Pe linia următoare este dat şirul de biţi $b{~1~}, b{~2~}, ..., b{~N~}$, ca valori de 0 şi 1 separate prin spaţiu. Pe a treia linie a fiecărui test este dat codul lungimilor $p{~1~}, p{~2~}, ..., p{~M~}$.
 
Fişierul se termină cu o linie care conţine doar valoarea 0.
h2. Date de ieşire
În fişierul de ieşire $bitsort.out$ ...
În fişierul de ieşire $bitsort.out$ se va afişa pentru fiecare exemplu de test câte o linie care conţine un singur întreg reprezentând numărul minim de interschimbări cerut.
h2. Restricţii
* $... ≤ ... ≤ ...$
* $0 ≤ M ≤ N ≤ 15$
* $0 ≤ b{~i~} ≤ 1$
* $p{~1~} + p{~2~} + ... + p{~M~} = N$
* numărul de teste din fişierul de intrare este cel mult 50
h2. Exemplu
table(example). |_. bitsort.in |_. bitsort.out |
| This is some
  text written on
  multiple lines.
| This is another
  text written on
  multiple lines.
| 6 3
1 0 0 1 0 1
1 3 2
7 2
1 1 1 0 0 0 0
4 3
15 14
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 1 1 1 1 1 1 1 1 1 1 1 2
0
| 1
12
7
|
h3. Explicaţie
 
...
== include(page="template/taskfooter" task_id="bitsort") ==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.