#1287. 开场白

开场白

【试题描述】

给你一个n行n列的由1到nn构成的数字方阵,其中1到nn每个数恰好出现一次,并且已知这个数字方阵的每一行每一列的数之和都等于定值n*(nn+1)/2。现在要你验证它的两条对角线上的数之和是否都等于定值n(n*n+1)/2。如果满足这一条件则这个数字方阵就是传说中的幻方了。

【输入要求】

第一行读入一个正整数n,n<10。从第2行到第n+1行每行读入n个正整数,相邻两数间用空格隔开。输入数据保证1到nn每个数恰好出现一次,并且这个数字方阵的每一行每一列的数之和都等于定值n(n*n+1)/2。

【输出要求】

如果输入的方阵的两条对角线上的n个数之和都等于定值n*(n*n+1)/2则输出"Yes",否则输出"No"。输出时请注意大小写,双引号不要输出。

【输入样例1】

3

6 1 8

7 5 3

2 9 4

【输出样例1】

Yes

【输入样例2】

4

1 15 14 4

12 6 7 9

13 3 2 16

8 10 11 5

【输出样例2】

No

【知识点及提示】

主对角线上所有位置的元素所在的行和列是相等的,反对角线上所有位置的元素所在的行和列相加等于n+1。

样例解释:样例1中主对角线上3个数分别是6,5,4,它们的和等于15=3*(3*3+1)/2,反对角线上3个数分别是8,5,2,它们的和也等于15,因此输入的方阵是一个传说中的幻方。

样例2中主对角线上4个数分别是1,6,2,5,它们的和是14不等于4*(4*4+1)/2,因此输入的方阵不是幻方。