Programozó versenyek

Magas szintű programozási nyelvek 2, 2014. december 15., H14 ZH

2014. december 15. 14:05 – 2014. december 15. 15:45

Latin négyzet

Írjon programot, amelynek első parancssori argumentuma egy szöveges állomány neve! A szöveges állományban egész számokat tartalmazó négyzetes mátrixok leírásai szerepelnek. Egy n × n-es mátrixot n + 1 sor ír le. Az első sorban egyetlen n egész szám (n > 0) szerepel. Az ezt követő n sor mindegyikében n darab egész szám található. Az egyes sorokban a számok egy szóköz karakterrel vannak elválasztva egymástól. A program döntse el, hogy a szöveges állományban található mátrixok latin négyzetek-e, azaz igaz-e rájuk az, hogy minden sorukban és minden oszlopukban szerepel-e 1-től n-ig az összes egész szám! (Ez azt jelenti, hogy minden sorban és minden oszlopban pontosan egyszer fordul elő 1-től n-ig minden egész szám.) Ha egy mátrix latin négyzet, a program írjon a standard kimenetre egy „YES”, egyébként pedig egy „NO” szót tartalmazó sort!

Példa bemenet

  1. 3
  2. 1 2 3
  3. 2 3 1
  4. 3 1 2
  5. 4
  6. 1 2 3 4
  7. 2 1 4 3
  8. 3 4 1 2
  9. 4 3 2 1
  10. 4
  11. 1 1 1 1
  12. 2 2 2 2
  13. 3 3 3 3
  14. 4 4 4 4
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

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