#include int d[16][16]; int main() { int n; scanf("%d", &n); int i, j, k; for (i = 0; i < n; i++) for (j = 0; j < n; j++) scanf("%d", &d[i][j]); int res1, res2; res1 = 1; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { if (i == j) { if (d[i][j] != 0) res1 = 0; } else { if (d[i][j] == 0) res1 = 0; } } } for (i = 0; i < n; i++) for (j = 0; j < n; j++) if (d[i][j] != d[j][i]) res1 = 0; res2 = res1; for (i = 0; i < n; i++) for (j = 0; j < n; j++) for (k = 0; k < n; k++) if (d[i][j] > d[i][k] + d[k][j]) res1 = 0; for (i = 0; i < n; i++) for (j = 0; j < n; j++) for (k = 0; k < n; k++) if (d[i][j] > d[i][k] && d[i][j] > d[k][j]) res2 = 0; if (res1 > 0) printf("Yes\n"); else printf("No\n"); if (res2 > 0) printf("Yes\n"); else printf("No\n"); return 0; }