#include <iostream> #include <stdio.h> #include <cstring> #include <string> #include <algorithm> using namespace std; int n, m; int map[201][201]; bool Max(int x, int y, int l) { for (int i = x; i < x+l; i++) for (int j = y; j < y + l; j++) { if (map[i][j] != map[x][y]) return false; } return true; } int main() { while (scanf("%d%d", &n, &m) != EOF) { int ans = 0; int max1 = max(n, m); for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) scanf("%d", &map[i][j]); for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) for (int a = ans + 1; a < max1; a++) if (i + a <= n && j + a <= m) { if (Max(i, j, a)) ans = a; } else break; cout << ans * ans << endl; } return 0; }
0.0分
2 人评分