Programozó versenyek

Programozási technológiák, 2015. március 18., Sze08 ZH

2015. március 18. 8:10 – 2015. március 18. 9:45

Mátrix

Készítsen programot, amely a billentyűzetről egy kvadratikus mátrix sorainak számát, valamint a mátrix elemeit olvassa be. A program határozza meg és írja a szabványos kimenetre azt az értéket, amit az alábbi tevékenységsorozat végrehajtásával kapunk:

  • előbb a második bemenetsor elemeit spirálvonalban az alábbi (bal oldali) ábrán (5x5-ös mátrix példáján) látható módon elhelyezzük a mátrixban,
  • majd az így kapott mátrix sorait az első oszlop értékei alapján növekvőleg sorba rendezzük (úgy, hogy az esetlegesen azonos első oszlopbeli értékkel rendelkező sorok egymáshoz viszonyított sorrendje ne változzon!),
  • végül pedig összeszorozzuk az így átrendezett mátrix főátlójában található értékeket.

A középső ábra azt mutatja be, hogy miképp kell az [1..25] zárt intervallum értékeit elhelyezni egy 5x5-ös mátrixban. A jobb szélső ábrán az első oszlop értékei alapján már átrendezett mátrix látható, a főátlójában látható elemek szorzataként előálló végeredménnyel.

A bemenet első sora egy 1 ≤ k ≤ 100 pozitív egész érték, amely a tesztesetek számát jelenti. Minden teszteset pontosan két sorból áll: az első sorban egyetlen, szintén 1 és 100 közötti n egész (a kvadratikus mátrix mérete), míg a másodikban pontosan n2 egész (a kvadratikus mátrix elemei) helyezkedik el. A mátrix elemeit egymástól szóköz karakterek választják el. A kimenet tesztesetenként egy sorban egyetlen egész értéket, a fentiek értelmében kitöltött és átrendezett mátrix főátlójában lévő elemeinek szorzatát tartalmazza.

Tipp: mivel a szorzat könnyen nagy is lehet, ezért használja a java.math.BigInteger-t az int típus helyett! Pl.: BigInteger bi = BigInteger.valueOf(5); bi = bi.multiply(BigInteger.valueOf(2));

Példa bemenet

  1. 3
  2. 5
  3. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
  4. 3
  5. 69 94 81 41 9 98 39 4 0
  6. 2
  7. 1 0 0 1
letöltés szöveges állományként

Példa kimenet

  1. 31680
  2. 31752
  3. 0
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.