#include "soccer.h"
#include <bits/stdc++.h>
using namespace std;
int biggest_stadium(int n, vector<vector<int>> F) {
int x = -1, y = -1, c = 0;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (F[i][j]) x = i, y = j, ++c;
}
}
if (c == 1) {
if (x == -1 && y == -1) return n*n;
return n*n - min(x+1, n-x) * min(y+1, n-y);
}
int mn[n], mx[n];
fill(mn, mn+n, 1e9);
fill(mx, mx+n, -1);
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (!F[i][j]) mn[i] = min(mn[i], j), mx[i] = max(mx[i], j);
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (F[i][j] && mn[i] <= j && j <= mx[i]) return 1;
}
}
for (int i = 0; i < n-1; ++i) {
if (!(mn[i] <= mn[i+1] && mx[i+1] <= mx[i]) && !(mn[i+1] <= mn[i] && mx[i] <= mx[i+1])) return 1;
}
fill(mn, mn+n, 1e9);
fill(mx, mx+n, -1);
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (!F[j][i]) mn[i] = min(mn[i], j), mx[i] = max(mx[i], j);
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (F[j][i] && mn[i] <= j && j <= mx[i]) return 1;
}
}
for (int i = 0; i < n-1; ++i) {
if (!(mn[i] <= mn[i+1] && mx[i+1] <= mx[i]) && !(mn[i+1] <= mn[i] && mx[i] <= mx[i+1])) return 1;
}
return n*n - c;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |