This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "soccer.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
constexpr ll INF = 1000000000;
ll n, m, q, k, x, y, a, b, c, d;
vector< vector<int> > v;
bool check(ll x, ll y) {
if (x < 0 || x >= n) {
return 0;
}
if (y < 0 || y >= n) {
return 0;
}
if (v[x][y]) {
return 0;
}
return 1;
}
int biggest_stadium(int N, std::vector<std::vector<int>> F) {
n = N;
v = F;
ll trees = 0;
ll mx = n * n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (v[i][j]) {
trees++;
mx = min({mx, max({n * n - (i + 1) * (j + 1), n * n - (i + 1) * (n - j), n * n - (n - i) * (j + 1), n * n - (n - i) * (n - j)})});
}
}
}
return mx;
int mnx = INF, mny = INF, mxx = -INF, mxy = -INF;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (v[i][j] && ((check(i, j + 1) && check(i, j - 1)) || (check(i + 1, j) && check(i - 1, j)))) {
return 0;
}
if (!v[i][j]) {
mnx = min(mnx, i);
mxx = max(mxx, i);
mny = min(mny, j);
mxy = max(mxy, j);
}
}
}
pair<int, int> mnxr = {INF, -INF};
pair<int, int> mnyr = {INF, -INF};
pair<int, int> mxxr = {INF, -INF};
pair<int, int> mxyr = {INF, -INF};
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == mnx) {
mnxr = {min(mnxr.first, j), max(mnxr.second, j)};
}
if (j == mny) {
mnyr = {min(mnyr.first, i), max(mnyr.second, i)};
}
if (i == mxx) {
mxxr = {min(mxxr.first, j), max(mxxr.second, j)};
}
if (j == mxy) {
mxyr = {min(mxyr.first, i), max(mxyr.second, i)};
}
}
}
if (max(mnxr.second, mxxr.second) - min(mnxr.first, mxxr.first) > max(mnxr.second - mnxr.first, mxxr.second - mxxr.first)) {
return 0;
}
if (max(mnyr.second, mxyr.second) - min(mnyr.first, mxyr.first) > max(mnyr.second - mnyr.first, mxyr.second - mxyr.first)) {
return 0;
}
return n * n - trees;
}
# | 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... |