#include <iostream>
#include <algorithm>
using namespace std;

const int N=333;
typedef long long LL;
int A[N][N],idx[N][N];

int main(){
	int n,flag=1;
	LL ans=0;
	cin>>n;
	for(int i=1;i<=n;i++)
	for(int j=1;j<=n;j++)
	cin>>A[i][j],idx[i][j]=0;
	
	for(int k=1;k<=n;k++){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				if(i==j||i==k||j==k) continue;
				if(A[i][k]+A[k][j]<A[i][j]) flag=0;
				if(A[i][k]+A[k][j]==A[i][j]) idx[i][j]=1;
			}
		}
	}
	
	if(!flag) {cout<<-1<<endl;return 0;}
	for(int i=1;i<=n;i++){
		for(int j=i+1;j<=n;j++){
			if(!idx[i][j]) ans+=A[i][j];
		}
	}
	
	cout<<ans<<endl;
	return 0;
}