#include "soccer.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<vector<int>> row;
vector<vector<int>> col;
vector<vector<int>> arr;
int n;
bool check(int x1, int y1, int x2, int y2)
{
if (x1 == x2)
return (row[x1][y1] - row[x1][y2] == 0);
if (y1 == y2)
return (col[x1][y1] - col[x2][y2] == 0);
return ((row[x1][y1] - row[x1][y2] == 0 && col[x1][y2] - col[x2][y2] == 0) || (col[x1][y1] - col[x2][y1] == 0 && row[x2][y1] - row[x2][y2] == 0));
}
int biggest_stadium(int N, vector<vector<int>> F)
{
arr = F;
n = N;
int ans = 0;
row = F;
col = F;
for (int i = 0; i < n; i++)
{
for (int j = 1; j < n; j++)
{
row[i][j] += row[i][j - 1];
col[j][i] += col[j - 1][i];
}
}
// for (auto c : row)
// {
// for (auto g : c)
// cout << g << ' ';
// cout << endl;
// }
// cout << endl;
// for (auto c : col)
// {
// for (auto g : c)
// cout << g << ' ';
// cout << endl;
// }
// cout << endl;
queue<pair<int, int>> q;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (arr[i][j])
continue;
q.push({i - 1, j});
q.push({i, j - 1});
q.push({i + 1, j});
q.push({i, j + 1});
int curr = 1;
vector<pair<int, int>> found;
vector<vector<bool>> vis(n, vector<bool>(n));
vis[i][j] = true;
found.push_back({i, j});
while (!q.empty())
{
int x = q.front().first, y = q.front().second;
q.pop();
bool ok = true;
if (x == -1 || x == n || y == -1 || y == n )
continue;
if(arr[x][y] || vis[x][y]) continue;
vis[x][y] = true;
for (pair<int, int> c : found)
{
if (!check(c.first, c.second, x, y))
{
ok = false;
break;
}
}
if (!ok)
continue;
found.push_back({x, y});
curr++;
// cout << curr << ' ' << x << ' ' << y << endl;
q.push({x - 1, y});
q.push({x, y - 1});
q.push({x + 1, y});
q.push({x, y - 1});
}
ans = max(ans, curr);
}
}
return ans;
}
void solve()
{
int n;
cin >> n;
vector<vector<int>> arr(n, vector<int>(n));
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cin >> arr[i][j];
}
}
cout << biggest_stadium(n, arr) << endl;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie();
cout.tie();
int t = 1;
cin >> t;
while (t--)
{
solve();
}
}
Compilation message
/usr/bin/ld: /tmp/ccj9blId.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccwMbuMb.o:soccer.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status