#include <bits/stdc++.h>
#include "soccer.h"
using namespace std;
#define fi first
#define se second
typedef long long ll;
typedef long double ld;
mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
ll inf = 1e18;
bool all_good(int n, vector<vector<int>> f) {
bool ok = 1;
int cnt = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (f[i][j] == 0) {
cnt++;
}
}
}
for (int vi = 0; vi < n; vi++) {
for (int vj = 0; vj < n; vj++) {
for (int ui = 0; ui < n; ui++) {
for (int uj = 0; uj < n; uj++) {
if (!(f[vi][vj] == 0 && f[ui][uj] == 0))
continue;
int mini = min(vi, ui);
int maxi = max(vi, ui);
int minj = min(vj, uj);
int maxj = max(vj, uj);
bool fii = 1, fij = 1;
for (int i = mini; i <= maxi; i++) {
if (f[i][vj] == 1)
fii = 0;
if (f[i][uj] == 1)
fij = 0;
}
for (int j = minj; j <= maxj; j++) {
if (f[ui][j] == 1)
fii = 0;
if (f[vi][j] == 1) {
fij = 0;
}
}
if (fii == 0 && fij == 0) {
ok = 0;
}
}
}
}
}
return ok;
}
int biggest_stadium(int n, vector<vector<int>> f) {
int res = 0;
for (int ma = 0; ma < (1 << (n * n)); ma++) {
vector<vector<int>> vec(n, vector<int>(n));
bool valid = 1;
int num = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if ((ma >> (i * n + j)) & 1) {
vec[i][j] = 0;
num++;
} else {
vec[i][j] = 1;
}
if (vec[i][j] == 0 && f[i][j] == 1) {
valid = 0;
}
}
}
if (!valid) {
continue;
}
if (all_good(n, vec)) {
res = max(res, num);
}
}
return res;
}
# | 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... |