Programozás‎ > ‎Feladatok‎ > ‎

Mastermind

Aladár és Bori kódfejtő játékot játszanak. Aladár gondol egy négyjegyű számra, amelynek jegyei különböznek, és az {1, 2, 3, 4, 5, 6} halmaz elemei közül kerülnek ki. Bori célja a gondolt szám kitalálása, minél kevesebb tippeléssel. Egy tipp egy négyjegyű szám, amire  Aladár közöl valamennyi részinformációt, az alábbiak szerint: megmondja, hogy a Bori által tippelt számban
  • hány számjegy talált (jó az értéke és jó helyen áll);
  • továbbá az előbbieken túl hány olyan számjegy van, aminek jó az értéke, de rossz helyen áll.
A játék egy pontján Bori szeretné tudni, hogy az addig elhangzott tippek és válaszok alapján még milyen számok jöhetnek szóba, hoszen ez alapján választaná ki a következő tippet.

Feladat

Írjunk programot, ami a játék első néhány lépésének ismeretében megadja az összes olyan négyjegyű számot, ami minden elhangzott információnak megfelel. 

Bemenet

A bemenet első sora egyetlen egész számot tartalmaz ( N ), ami azt adja meg, hogy eddig hány tipp hangzott el. A következő N sorban egy-egy tipp leírása jön. Ezek a sorok hat egész számot tartalmaznak, szóközökkel elválasztva: az első négy szám az, amit Bori tippelt, a következő kettő pedig Aladár válasza: a pontosan eltalált, majd a rossz helyen álló, de jó jegyek száma.   

Kimenet

Az első sorba írjuk ki, hogy hány lehetőség maradt a gondolt számra. Ezután soroljuk fel a lehetőségeket, soronként egyet-egyet.

Példa

Bemenet  Kimenet
3
1 2 3 4 0 2
2 3 4 5 1 2
3 4 5 6 0 3
5
2563
4625
5362
5642
6542

Tesztadatok

Címkék

A feladat forrása: saját feladat
Algoritmusok: összes eset generálása