#if __has_include() #include using namespace atcoder; #else #include #if __has_include() #include using namespace atcoder; #endif #endif using namespace std; #define int long long #define all(x) (x).begin(), (x).end() #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rrep(i, n) for(int i = (int)((n) - 1); i >= 0; i--) template bool chmax(T &a,const T &b){if(a bool chmin(T &a,const T &b){if(a>b){a=b;return true;}return false;} // using mint = modint; signed main(){ int n; cin >> n; vector d(n, vector(n)); for(auto&& di : d) for(auto&& dij : di) cin >> dij; bool f1, f2, f3, f4; f1 = f2 = f3 = f4 = true; rep(i, n) rep(j, n){ f1 &= (d.at(i).at(j) == 0) == (i == j); f2 &= d.at(i).at(j) == d.at(j).at(i); } rep(i, n) rep(j, n) rep(k, n){ f3 &= d.at(i).at(j) <= d.at(i).at(k) + d.at(k).at(j); f4 &= d.at(i).at(j) <= max(d.at(i).at(k), d.at(k).at(j)); } println("{}", f1 && f2 && f3 ? "Yes" : "No"); println("{}", f1 && f2 && f4 ? "Yes" : "No"); }