int main() {
int n;
scanf("%d", &n);
int m[n][n], val = 0, count = 0;
for (int i = n - 1; i > 0; i--) { //计算主对角线下元素个数
val += i;
}
for (int i = 0; i < n; i++) { //依次输入整数
for (int j = 0; j < n; j++) {
scanf("%d ", &m[i][j]);
//判断当前位置是否为主对角线下方且值为0
if (i > j && m[i][j] == 0) count++;
}
}
//当主对角线下元素个数与值为0个数相等时输出YES
if (val == count) printf("YES");
//否则输出NO
else printf("NO");
return 0;
}