#include #define int long long #define endl "\n" using namespace std; void solve() { int n;cin>>n; vector> d(n,vector(n,0)); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin>>d[i][j]; } } bool isDeg = true; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if ((i==j && d[i][j]!=0) || (d[i][j]==0 && i!=j)) isDeg = false; } } bool isSym = true; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (d[i][j]!=d[j][i]) isSym = false; } } bool isTri = true; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { if (d[k][j]>d[k][i]+d[i][j]) isTri = false; } } } bool isSTri = true; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { if (d[k][j]>max(d[k][i],d[i][j])) isSTri = false; } } } if (isDeg && isSym && isTri) cout << "Yes" << endl; else cout << "No" << endl; if (isDeg && isSym && isSTri) cout << "Yes" << endl; else cout << "No" << endl; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); // int t;cin>>t;while(t--) solve(); }