#include #define rep(i,n)for(int i=0;iP; const int MOD=1000000007; const int INF=0x3f3f3f3f; const ll INFL=0x3f3f3f3f3f3f3f3f; int a[2000][2000]; vector

v[2000]; int suma[2000],sumb[2000]; int main(){ int n;cin>>n; rep(i,n)rep(j,n){ scanf("%d",&a[i][j]),a[i][j]--; v[a[i][j]].push_back(P(i,j)); } int ans=0; rep(i,n){ memset(suma,0,sizeof(suma)); memset(sumb,0,sizeof(sumb)); for(auto p:v[i]){ int l=max(0,p.first-p.second),r=min(n,p.first+p.second); suma[0]--;sumb[0]+=max(p.first,p.second); suma[l]++; suma[r]++; } int Min=INT_MAX; int d=0; rep(j,n){ if(j)suma[j]+=suma[j-1],sumb[j]+=sumb[j-1]; Min=min(Min,d+sumb[j]); d+=suma[j]; } ans+=Min; } cout<