#include #include using namespace std; using namespace atcoder; #define ll long long #define rep(i,a,b) for(int i=(a);i<(b);i++) #define repl(i,a,b) for(ll i=(a);i<(b);i++) #define all(a) (a).begin(),(a).end() #define rall(a) (a).rbegin(),(a).rend() template bool chmin(T &a,T b){if(a>b){a=b;return true;} return false;} template bool chmax(T &a,T b){if(a> n; vector d(n,vector(n)); rep(i,0,n)rep(j,0,n) cin >> d[i][j]; bool ch1=true,ch2=true,ch3=true,ch4=true; rep(i,0,n)rep(j,0,n){ if(d[i][j] != 0){ if(i == j) ch1=false; } else{ if(i != j) ch1=false; } } rep(i,0,n)rep(j,0,n){ if(d[i][j] != d[j][i]) ch2=false; } rep(i,0,n)rep(j,0,n)rep(k,0,n){ if(d[i][j]>d[i][k]+d[k][j]) ch3=false; if(d[i][j]>max(d[i][k],d[k][j])) ch4=false; } if(ch1 && ch2 && ch3){ cout << "Yes" << "\n"; } else{ cout << "No" << "\n"; } if(ch1 && ch2 && ch4){ cout << "Yes" << "\n"; } else{ cout << "No" << "\n"; } }