#include<stdio.h> #include<stdlib.h> #include<stdbool.h> //先输入一个方阵 int **martix(int n) { int **p=(int **)malloc(sizeof(int *)*n); if(p==NULL) { return NULL; } for(int i=0;i<n;i++) { p[i]=(int *)malloc(sizeof(int)*n); for(int j=0;j<n;j++) { scanf("%d",&p[i][j]); } } return p; } bool is_up_rectangle_martix(int **martix,int n) { for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(i>j&&martix[i][j]!=0) { return true; } } } return false; } int main() { int n; bool ans; scanf("%d",&n); int **arr=(int **)malloc(n*sizeof(int *)); arr=martix(n); ans=is_up_rectangle_martix(arr,n); if(ans) { printf("NO"); } else { printf("YES"); } free(arr); return 0; }