#include <bits/stdc++.h>
using namespace std;
char c[105][105];
int n, ans;
int a[5], b[5];
bool inRange(int from, int to, int v[], int n) {
for (int i = 1; i <= n; i++) {
if (v[i] >= from && v[i] <= to) continue;
return 0;
}
return 1;
}
void setIndex(int &x, int &y, int t) {
if (t == 90) {
x -= 1;
y -= 1;
} else if (t == 1) {
x += 1;
y += 1;
} else if (t == 2) {
x += 1;
y -= 1;
} else {
x -= 1;
y += 1;
}
}
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
cin >> c[i][j];
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (c[i][j] == '1') {
a[1] = a[2] = a[3] = a[4] = i;
b[1] = b[2] = b[3] = b[4] = j;
for (int i = 1; i <= 4; i++) setIndex(a[i], b[i], i-1);
while (inRange(1, n, a, 4) && inRange(1, n, b, 4)) {
if (c[a[1]][b[1]] == '0' || c[a[2]][b[2]] == '0'
|| c[a[3]][b[3]] == '0' || c[a[4]][b[4]] == '0' ) break;
ans++;
for (int i = 1; i <= 4; i++) setIndex(a[i], b[i], i-1);
}
}
}
}
for (int i = 1; i <= n - 1; i++) {
for (int j = 1; j <= n - 1; j++) {
if (c[i][j] == '1' && c[i+1][j] == '1' && c[i][j+1] == '1' && c[i+1][j+1] == '1') {
a[1] = i;
b[1] = j;
a[2] = i+1;
b[2] = j+1;
a[3] = i+1;
b[3] = j;
a[4] = i;
b[4] = i+1;
while (inRange(1, n, a, 4) && inRange(1, n, b, 4)) {
if (c[a[1]][b[1]] == '0' || c[a[2]][b[2]] == '0'
|| c[a[3]][b[3]] == '0' || c[a[4]][b[4]] == '0') break;
ans++;
for (int i = 1; i <= 4; i++) setIndex(a[i], b[i], i-1);
}
}
}
}
cout << ans;
}
各位大佬麻烦告诉以下我错哪里