Házi feladat

Páros munka (nem rekurzívan)

Leírás

Adott egy N főből álló osztály, ahol egy feladat elvégzéséhez párokat kell majd alkotni. Hogy az osztály összességében a legboldogabb legyen a páros munka során, mindenki felírja az osztálytársainak a névsorban elfoglalt sorszámait egy papírra olyan sorrendben, amilyen sorrendben a legszívesebben dolgozna a többiekkel.

Tehát például egy 10 fős osztály esetében ha a 7. sorszámú tanuló lapján ez áll: 5 9 8 2 3 1 4 6, akkor ez azt jelenti, hogy a legszívesebben az 5-ös sorszámú tanulóval dolgozna együtt, de ha az nem ér rá, akkor a 9-es sorszámú tanulóval, aki ha megint nem ér rá, akkor a 8-as sorszámúval és így tovább.

A feladat az osztály egy olyan párbaállítását adni, ahol az osztály összességében a lehető legboldogabb, azaz a lehető legkevésbé csalódtak összességében a párbaállításban. Egy ember csalódottságának mértékén azt értjük, hogy a vele párban álló személy sorszámának pozíciója hanyadik az illető papírjára felírt listán. Például ha a fenti példában a 7. sorszámú tanuló végül a 3-as sorszámú tanulóval alkot párt, akkor a 7-es sorszámú tanuló csalódottságának mértéke 5, mivel a 3-as sorszámú tanuló az 5. helyet foglalja el a 7-es sorszámú tanuló listáján. A 3-as sorszámú tanuló csalódottságának mértéke a fenti példából nem derül ki, mivel ahhoz szükség van a 3-as számú tanuló listájára is. A csalódottság mértéke tehát a párok tagjainál eltérő lehet.

Az osztály csalódottsága alatt a tagjai csalódottsági mértékének összegét értjük. Akkor mondjuk azt, hogy az osztály párbaállása a lehető legjobb, ha az osztály csalódottsága a lehető legkisebb.

Add meg, hogy kinek kivel kellene párba állnia ahhoz, hogy a párbaállás a lehető legboldogabbá (legkevésbé csalódottá) tegye az osztályt! A konzolról bekért bemenet egy szám (az osztálylétszám), majd N darab N hosszú szóközökkel tagolt számsorozat legyen különböző sorokba tagolva, ahol az i-edik számsorozat az i-edik tanuló listáját jelentik. Azaz az i-edik sorban álló j-edik szám azt mondja, hogy az i-edik tanuló csalódottságának mértéke a j-edik tanulóval való párbaálláskor nem más, mint j.

A program két választ kell adjon: Először is az összcsalódottság mértékét, majd új sorban szóközökkel elválasztva számok egy N hosszú sorozata legyen, ahol az i-edik szám az i-edik tanuló párjának sorszáma legyen!

A feladat megoldása során ne rekurzióval, hanem while-ciklussal dolgozz "jobbra-balra mozgó" ciklusváltozóval! (indextömb, oszlopban-keresés, jó/rossz-függvény, stb.)