Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace buvosnegyzet
- {
- class Program
- {
- static void Main(string[] args)
- {
- //nxn-es mátrix | ye
- //n egész és n>0 | ye
- //számok szóközzel elválasztva | kiiratás! ||ye
- //1 - minden sor / oszlop / főátló / mellékátló -> számok összege egyezik |ye
- //2 - egytől n2 ig minden szám megtalálható
- using (TextReader tr = new StreamReader(args[0]))
- {
- String line = null;
- while ((line = tr.ReadLine()) != null)
- {
- int szam = int.Parse(line);
- String sor = tr.ReadLine();
- int[,] tomb = new int[szam, szam];
- for (int i = 0; i < szam; i++)
- {
- String[] token = sor.Split(' ');
- for (int j = 0; j < szam; j++)
- {
- tomb[i, j] = int.Parse(token[j]);
- }
- if (i < szam - 1)
- sor = tr.ReadLine();
- }
- int sorosszeg = 0;
- int oszloposszeg = 0;
- int foatlo = 0;
- int mellekatlo = 0;
- for (int i = 0; i < szam; i++)
- sorosszeg += tomb[0, i];
- for (int i = 0; i < szam; i++)
- oszloposszeg += tomb[i, 0];
- for (int i = 0, j = 0; i < szam && j < szam; i++, j++)
- {
- foatlo += tomb[i, j];
- }
- for (int i = 0, j = (szam - 1); i < szam && j >= 0; i++, j--)
- mellekatlo += tomb[i, j];
- Boolean elsofelt = false;
- Boolean masodikfelt = true;
- if (sorosszeg == oszloposszeg && oszloposszeg == foatlo && foatlo == mellekatlo)
- elsofelt = true;
- int negyzetszam = szam * szam;
- int[] negyzettomb = new int[negyzetszam];
- int q = 0;
- for (int i = 1; i <= negyzetszam; i++)
- {
- negyzettomb[q] = i;
- q++;
- }
- int seged = -1;
- for (int i = 0; i < szam; i++)
- {
- for (int k = 0; k < szam; k++)
- {
- for (int l = 0; l < negyzetszam; l++)
- {
- if (tomb[i, k] == negyzettomb[l])
- {
- tomb[i, k] = seged;
- seged--;
- negyzettomb[l] = seged;
- seged--;
- }
- }
- }
- }
- Boolean valami = false;
- for (int i = 0; i < szam; i++)
- {
- for (int k = 0; k < szam; k++)
- if (tomb[i, k] >= 0)
- {
- valami = true;
- break;
- }
- if (valami)
- {
- masodikfelt = false;
- break;
- }
- }
- if (elsofelt)
- {
- if (masodikfelt)
- Console.WriteLine("YES");
- else
- Console.WriteLine("NO");
- }
- else
- Console.WriteLine("NO");
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement