我从没见过这么难的T1,求调
#include<bits/stdc++.h>
#define itn int
#define tin int
#define nit int
#define tni int
#define nti int
#define scnaf scanf
#define ptrinf printf
#define icn cin
#define cni cin
#define inc cin
#define nci cin
#define nic cin
#define cuot cout
#define ocut cout
#define fro for
using namespace std;
int n,ans;
char a[101][101];
void sear(itn x,int y,bool state)
{
int nx=x,ny=y,cnt1=0,cnt2=0;
if(state)
{
x++,y++;
while(a[x][y]=='1' && x<=n && y<=n && x>=1 && y>=1)
{
x++,y++,cnt1++;
}
x--,y--;
ny=y;
while(a[nx][ny]=='1' && nx>=1 && ny>=1 && nx<=n && ny<=n)
{
nx++,ny--,cnt2++;
}
nx--,ny++;
if(cnt1==cnt2-1 && (nx!=x && ny==y || nx==x && ny!=y))ans++;
}
else
{
x++,y--;
while(a[x][y]=='1' && x<=n && y<=n && x>=1 && y>=1)
{
x++,y--,cnt1++;
}
x--,y++;
ny=y;
while(a[nx][ny]=='1' && nx>=1 && ny>=1 && nx<=n && ny<=n)
{
nx++,ny++,cnt2++;
}
nx--,ny--;
if(cnt1==cnt2-1 && (nx!=x && ny==y || nx==x && ny!=y))ans++;
}
}
int main()
{
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
cin>>n;
fro(tin i=1;i<=n;i++)
cin>>a[i]+1;
fro(itn i=1;i<=n;i++)
{
fro(tin j=1;j<=n;j++)
{
if(a[i][j]=='1')
{
sear(i,j,1);
sear(i,j,0);
}
}
}
cout<<ans;
return 0;
}