Programozó versenyek

DEIK Regionális Programozó Csapatverseny, középiskolai kategória, 2015. november 29.

2015. november 29. 10:40 – 2015. november 29. 15:40

Építőkockák

A kis Bob nagyon szeret az építőkockáival játszani. Az egyik kockát a másikra rakva különböző magasságú tornyokat épít. „Nézd, építettem egy falat!” – mondja a nővérének, Alice-nek. „Minden tornyot egyforma magasságúra kellene alakítanod. Akkor lenne igazi falad” – vág vissza Alice. Némi megfontolás után Bob rájön, hogy a nővérének igaza van. Nekiáll hát a kockák átrendezésének, szépen egyesével, hogy utána mindegyik torony azonos magasságú legyen. Mivel azonban Bob lusta, mindezt a lehető legkevesebb kocka mozgatásával szeretné elérni. Tudnál neki segíteni?

A bemenet specifikációja

A bemenet számos tesztesetből áll. Mindegyik teszteset egy olyan sorral kezdődik, amelyben egy n szám, a Bob által épített tornyok száma szerepel. A következő sor n számot tartalmaz, az n darab torony hi magasságait. Feltételezheted, hogy 1 ≤ n ≤ 50 és 1 ≤ hi ≤ 100.

Az építőkockák száma osztható lesz a tornyok számával. Így mindig lehetséges lesz a kockákat úgy átrendezni, hogy minden torony azonos magasságú legyen.

A bemenetet egy olyan eset zárja, amelyben n = 0. Ezt az esetet nem kell feldolgozni.

A kimenet specifikációja

Minden tesztesetre először a teszteset sorszámát kell a kimenetre írni úgy, ahogy a példa kimeneten látható. Ezután egy, a „The minimum number of moves is k.” szöveget tartalmazó sort kell kiírni, ahol k azon építőkockák minimális száma, amelyeket át kell mozgatni ahhoz, hogy minden torony azonos magasságú legyen. Végül minden tesztesetet egy üres sorral kell lezárni.

Példa bemenet

  1. 6
  2. 5 2 4 1 7 5
  3. 0
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. Set #1
  2. The minimum number of moves is 5.
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.