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;
}