#include<iostream>
using namespace std;
int a[110][110],n;
int ans=0;
int pdzs(int x,int y){
if(x<0||x>n||y<0||y>n) return 0;
if(a[x][y]==0) return 0;
if(a[x][y]==1) return 1+pdzs(x-1,y-1);
}
int pdys(int x,int y){
if(x<0||x>n||y<0||y>n) return 0;
if(a[x][y]==0) return 0;
if(a[x][y]==1) return 1+pdys(x+1,y-1);
}
int pdzx(int x,int y){
if(x<0||x>n||y<0||y>n) return 0;
if(a[x][y]==0) return 0;
if(a[x][y]==1) return 1+pdzx(x-1,y+1);
}
int pdyx(int x,int y){
if(x<0||x>n||y<0||y>n) return 0;
if(a[x][y]==0||x<0||x>n||y<0||y>n) return 0;
if(a[x][y]==1) return 1+pdyx(x+1,y+1);
}
int pd1(int x,int y){
return min(min(pdzs(x-1,y-1),pdys(x+1,y-1)),min(pdzx(x-1,y+1),pdyx(x+1,y+1)));
}
int pd2(int x,int y){
return min(min(pdzs(x-1,y-1),pdys(x+2,y-1)),min(pdzx(x-1,y+2),pdyx(x+1,y+2)))+1;
}
int main(){
int i,j,k;
string str;
cin>>n;
for(i=1;i<=n;i++){
cin>>str;
for(j=1;j<=n;j++){
a[i][j]=(int)str[j-1]-48;
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(a[i][j]&&a[i+1][j]&&a[i][j+1]&&a[i+1][j+1]&&i+1<=n&&j+1<=n){
ans+=pd2(i,j);
}
if(a[i][j]){
ans+=pd1(i,j);
}
}
}
cout<<ans;
return 0;
}
大佬帮忙看看哪错了