NC54159. 上三角矩阵判定
描述
KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。
输入描述
第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (1≤n≤10)
从2到n+1行,每行输入n个整数(范围-231~231-1),用空格分隔,共输入n*n个数。
输出描述
一行,如果输入方阵是上三角矩阵输出"YES"并换行,否则输出"NO"并换行。
示例1
输入:
3 1 2 3 0 4 5 0 0 6
输出:
YES
C(clang11) 解法, 执行用时: 2ms, 内存消耗: 372K, 提交时间: 2020-11-13 09:21:31
#include <stdio.h> int main() { int n, a, i, j, cnt = 0; scanf("%d", &n); for (i = 0; i < n; i++) for (j = 0; j < n; j++) { scanf("%d", &a); if (j < i && a != 0) { printf("NO\n"); return 0; } } printf("YES\n"); }
C++(clang++11) 解法, 执行用时: 3ms, 内存消耗: 480K, 提交时间: 2020-11-14 15:57:58
#include <stdio.h> int main() { int n, a, i, j; scanf("%d", &n); for (i = 0; i < n; i++) for (j = 0; j < n; j++) { scanf("%d", &a); if (j < i && a != 0) { printf("NO\n"); return 0; } } printf("YES\n"); }
pypy3(pypy3.6.1) 解法, 执行用时: 47ms, 内存消耗: 18672K, 提交时间: 2020-09-04 21:15:16
n=int(input()) for i in range(n): if list(map(int,input().strip().split()))[:i] != [0]*i: print('NO') break; else: print('YES')
Python3(3.5.2) 解法, 执行用时: 24ms, 内存消耗: 3320K, 提交时间: 2020-07-03 11:16:34
n = int(input()) for i in range(n): if list(map(int,input().split()))[:i] != [0] * i: print('NO') break else: print('YES')