15pts求条
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,f[1010][1010],a[1010][1010];
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
memset(f,0x3f,sizeof f);
for(int i=1;i<=n;i++){
f[i][1]=i-1;
f[i][2]=i;
}
for(int i=3;i<=n;i++){
if(a[1][i]<a[1][i-1]){
if(a[1][i-1]<a[1][i-2]){
f[1][i]=f[1][i-1];
}
else{
f[1][i]=f[1][i-1]+1;
}
}
else{
f[1][i]=f[1][i-1]+1;
}
}
for(int i=2;i<=n;i++){
for(int j=3;j<=n;j++){
if(a[i][j]<a[i][j-1]){
if(a[i][j-1]<a[i][j-2]){
f[i][j]=f[i][j-1];
}
}
f[i][j]=min(f[i][j],min(f[i-1][j]+1,f[i][j-1]+1));
}
}
cout<<f[n][n];
return 0;
}