Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int N = 505;int n;char mp[N][N];bool isok(int x, int y, int sz) {if(x-sz < 0 || x+sz >= n || y-sz < 0 || y+sz >= n) return false;return mp[x-sz][y] == '1' &&mp[x+sz][y] == '1' &&mp[x][y-sz] == '1' &&mp[x][y+sz] == '1';}int size(int x, int y) {int sz = 0;while(isok(x, y, sz)) sz++;return sz;}int main() {cin >> n;int ans = 0;for(int i = 0; i < n; i++) cin >> mp[i];for(int i = 0; i < n; i++) {for(int j = 0; j < n; j++) {ans = max(ans, size(i,j));}}cout << ans-1 << endl;