/* Ignut
started: 13.08.2024
now: 13.08.2024
████████████████████████████████████████████████████████████████████
████████████████████████████████ ████████████████████████████████
██████████████████████████████ ██████████████████████████████
██████ ██████████████████ ██████████████████ ██████
██████ ██████████████ ██████████████ ██████
██████ ██ ████████████ ████████████ ██ ██████
██████ ████ ██████████ ██████████ ████ ██████
██████ ████ ██████████ ██████████ ████ ██████
██████ ████ ██████████ ██████████ ██████ ██████
██████ ██████ ██████████ ██████████ ██████ ██████
██████ ██████ ████████ ████████ ██████ ██████
██████ ██████ ██████ ██████ ██████ ██████
██████ ████ ████ ████ ████ ██████
██████ ██████████ ████ ██████████ ██████
██████ ██ ██████ ████████ ██████ ██ ██████
██████ ██████ ████████ ██████ ██████
██████ ██ ██ ██████
██████████████████████ ████ ████ ██████████████████████
████████████████████████ ██ ██ ████████████████████████
██████████████████████████ ██████████████████████████
██████████████████████████████ ██████████████████████████████
████████████████████████████████████████████████████████████████████
*/
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MAXN = 2222;
int n;
vector<vector<int>> f;
bool used[MAXN][MAXN];
vector<pair<int, int>> delta = {{0, -1}, {0, 1}, {-1, 0}, {1, 0}};
bool Good(int i, int j) {
return i >= 0 && j >= 0 && i < n && j < n && f[i][j] == 0 && !used[i][j];
}
int cnt = 0;
void dfs(int i, int j) {
cnt ++;
used[i][j] = true;
for (auto [di, dj] : delta) {
int ci = i + di, cj = j + dj;
if (Good(ci, cj)) {
dfs(ci, cj);
}
}
}
int Check() {
for (int i = 0; i < n; i ++)
for (int j = 0; j < n; j ++)
used[i][j] = false;
int prev_l = -1, prev_r = -1;
bool have_sm = false;
for (int i = 0; i < n; i ++) {
int first = -1, last = -1, cnt = 0;
for (int j = 0; j < n; j ++) {
if (f[i][j] == 1) continue;
if (first == -1) first = j;
last = j;
cnt ++;
}
if (cnt > 0 && cnt != last - first + 1) return 0;
if (prev_l == -1) {
prev_l = first;
prev_r = last;
continue;
}
if (cnt == 0) continue;
bool sm = false;
if (first > prev_l || last < prev_r) sm = true;
bool bg = false;
if (first < prev_l || last > prev_r) bg = true;
if (sm && bg) return 0;
if (bg && have_sm) return 0;
if (sm) have_sm = true;
prev_l = first;
prev_r = last;
}
prev_l = -1, prev_r = -1;
have_sm = false;
for (int j = 0; j < n; j ++) {
int first = -1, last = -1, cnt = 0;
for (int i = 0; i < n; i ++) {
if (f[i][j] == 1) continue;
if (first == -1) first = i;
last = i;
cnt ++;
}
if (cnt > 0 && cnt != last - first + 1) return 0;
if (prev_l == -1) {
prev_l = first;
prev_r = last;
continue;
}
if (cnt == 0) continue;
bool sm = false;
if (first > prev_l || last < prev_r) sm = true;
bool bg = false;
if (first < prev_l || last > prev_r) bg = true;
if (sm && bg) return 0;
if (bg && have_sm) return 0;
if (sm) have_sm = true;
prev_l = first;
prev_r = last;
}
for (int i = 0; i < n; i ++) {
for (int j = 0; j < n; j ++) {
if (f[i][j] == 1) continue;
int up = 0;
for (int ii = i; ii >= 0; ii --) {
if (f[ii][j] == 1) break;
up ++;
}
int left = 0;
for (int jj = j; jj >= 0; jj --) {
if (f[i][jj] == 1) break;
left ++;
}
if (Good(i - up, j - left)) return 0;
int right = 0;
for (int jj = j; jj < n; jj ++) {
if (f[i][jj] == 1) break;
right ++;
}
if (Good(i - up, j + right)) return 0;
}
}
int i0, j0;
for (int i = 0; i < n; i ++)
for (int j = 0; j < n; j ++)
if (f[i][j] == 0)
i0 = i, j0 = j;
cnt = 0;
dfs(i0, j0);
int sum = n * n;
for (int i = 0; i < n; i ++)
for (int j = 0; j < n; j ++)
sum -= f[i][j];
if (cnt != sum) return 0;
// for (int i = 0; i < n; i ++) {
// for (int j = 0; j < n; j ++) {
// cout << f[i][j] << ' ';
// }
// cout << '\n';
// }
// cout << '\n';
return sum;
}
vector<vector<int>> FF;
int res = 1;
void Rec(int i) {
if (i == n) return;
for (int l = 0; l < n; l ++) {
for (int r = l; r < n; r ++) {
bool ok = true;
for (int j = l; j <= r; j ++) {
if (FF[i][j] == 1) {
ok = false; break;
}
}
if (!ok) continue;
for (int j = l; j <= r; j ++) f[i][j] = 0;
int ch = Check();
res = max(res, ch);
if (ch > 0) {
Rec(i + 1);
}
for (int j = l; j <= r; j ++) f[i][j] = 1;
}
}
Rec(i + 1);
}
int biggest_stadium(int N, vector<vector<int>> F) {
int cntT = 0;
for (int i = 0; i < N; i ++)
for (int j = 0; j < N; j ++)
cntT += F[i][j];
if (cntT <= 1) {
for (int i = 0; i < N; i ++) {
for (int j = 0; j < N; j ++) {
if (F[i][j] == 0) continue;
int mn = N * N;
mn = min(mn, (i + 1) * (j + 1));
mn = min(mn, (N - i) * (N - j));
mn = min(mn, (N - i) * (j + 1));
mn = min(mn, (i + 1) * (N - j));
return N * N - mn;
}
}
return N * N;
}
n = N;
f = F;
FF = F;
if (N > 8) return max(1, Check());
for (int i = 0; i < N; i ++)
for (int j = 0; j < N; j ++)
f[i][j] = 1;
Rec(0);
return res;
}
Compilation message
soccer.cpp: In function 'int Check()':
soccer.cpp:155:8: warning: 'j0' may be used uninitialized in this function [-Wmaybe-uninitialized]
155 | dfs(i0, j0);
| ~~~^~~~~~~~
soccer.cpp:155:8: warning: 'i0' may be used uninitialized in this function [-Wmaybe-uninitialized]
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
456 KB |
ok |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
ok |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Correct |
0 ms |
348 KB |
ok |
4 |
Correct |
0 ms |
348 KB |
ok |
5 |
Correct |
0 ms |
348 KB |
ok |
6 |
Correct |
0 ms |
348 KB |
ok |
7 |
Correct |
0 ms |
348 KB |
ok |
8 |
Correct |
16 ms |
2212 KB |
ok |
9 |
Correct |
233 ms |
31792 KB |
ok |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
ok |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Correct |
0 ms |
348 KB |
ok |
4 |
Correct |
0 ms |
348 KB |
ok |
5 |
Correct |
0 ms |
348 KB |
ok |
6 |
Correct |
0 ms |
348 KB |
ok |
7 |
Correct |
0 ms |
348 KB |
ok |
8 |
Correct |
0 ms |
348 KB |
ok |
9 |
Correct |
0 ms |
348 KB |
ok |
10 |
Correct |
0 ms |
348 KB |
ok |
11 |
Correct |
0 ms |
348 KB |
ok |
12 |
Correct |
0 ms |
348 KB |
ok |
13 |
Correct |
0 ms |
348 KB |
ok |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
456 KB |
ok |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Correct |
0 ms |
348 KB |
ok |
4 |
Correct |
0 ms |
348 KB |
ok |
5 |
Correct |
0 ms |
348 KB |
ok |
6 |
Correct |
0 ms |
348 KB |
ok |
7 |
Correct |
0 ms |
348 KB |
ok |
8 |
Correct |
0 ms |
348 KB |
ok |
9 |
Correct |
0 ms |
348 KB |
ok |
10 |
Correct |
0 ms |
348 KB |
ok |
11 |
Correct |
0 ms |
348 KB |
ok |
12 |
Correct |
0 ms |
348 KB |
ok |
13 |
Correct |
0 ms |
348 KB |
ok |
14 |
Correct |
0 ms |
348 KB |
ok |
15 |
Correct |
1724 ms |
432 KB |
ok |
16 |
Correct |
215 ms |
348 KB |
ok |
17 |
Correct |
9 ms |
348 KB |
ok |
18 |
Correct |
1 ms |
348 KB |
ok |
19 |
Correct |
0 ms |
348 KB |
ok |
20 |
Correct |
0 ms |
348 KB |
ok |
21 |
Correct |
0 ms |
348 KB |
ok |
22 |
Correct |
1 ms |
348 KB |
ok |
23 |
Correct |
1 ms |
348 KB |
ok |
24 |
Correct |
1 ms |
348 KB |
ok |
25 |
Correct |
8 ms |
348 KB |
ok |
26 |
Correct |
52 ms |
600 KB |
ok |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
456 KB |
ok |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Correct |
0 ms |
348 KB |
ok |
4 |
Correct |
0 ms |
348 KB |
ok |
5 |
Correct |
0 ms |
348 KB |
ok |
6 |
Correct |
0 ms |
348 KB |
ok |
7 |
Correct |
0 ms |
348 KB |
ok |
8 |
Correct |
0 ms |
348 KB |
ok |
9 |
Correct |
0 ms |
348 KB |
ok |
10 |
Correct |
0 ms |
348 KB |
ok |
11 |
Correct |
0 ms |
348 KB |
ok |
12 |
Correct |
0 ms |
348 KB |
ok |
13 |
Correct |
0 ms |
348 KB |
ok |
14 |
Correct |
0 ms |
348 KB |
ok |
15 |
Correct |
0 ms |
348 KB |
ok |
16 |
Correct |
0 ms |
348 KB |
ok |
17 |
Correct |
1724 ms |
432 KB |
ok |
18 |
Correct |
215 ms |
348 KB |
ok |
19 |
Correct |
9 ms |
348 KB |
ok |
20 |
Correct |
1 ms |
348 KB |
ok |
21 |
Correct |
0 ms |
348 KB |
ok |
22 |
Correct |
0 ms |
348 KB |
ok |
23 |
Correct |
0 ms |
348 KB |
ok |
24 |
Correct |
1 ms |
348 KB |
ok |
25 |
Correct |
1 ms |
348 KB |
ok |
26 |
Correct |
1 ms |
348 KB |
ok |
27 |
Correct |
8 ms |
348 KB |
ok |
28 |
Correct |
52 ms |
600 KB |
ok |
29 |
Correct |
13 ms |
344 KB |
ok |
30 |
Partially correct |
0 ms |
444 KB |
partial |
31 |
Partially correct |
0 ms |
348 KB |
partial |
32 |
Partially correct |
1 ms |
604 KB |
partial |
33 |
Partially correct |
0 ms |
344 KB |
partial |
34 |
Correct |
1 ms |
348 KB |
ok |
35 |
Correct |
0 ms |
348 KB |
ok |
36 |
Partially correct |
0 ms |
376 KB |
partial |
37 |
Partially correct |
1 ms |
348 KB |
partial |
38 |
Partially correct |
0 ms |
348 KB |
partial |
39 |
Partially correct |
0 ms |
604 KB |
partial |
40 |
Partially correct |
0 ms |
348 KB |
partial |
41 |
Partially correct |
0 ms |
504 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
456 KB |
ok |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Correct |
0 ms |
348 KB |
ok |
4 |
Correct |
0 ms |
348 KB |
ok |
5 |
Correct |
0 ms |
348 KB |
ok |
6 |
Correct |
0 ms |
348 KB |
ok |
7 |
Correct |
0 ms |
348 KB |
ok |
8 |
Correct |
0 ms |
348 KB |
ok |
9 |
Correct |
0 ms |
348 KB |
ok |
10 |
Correct |
0 ms |
348 KB |
ok |
11 |
Correct |
0 ms |
348 KB |
ok |
12 |
Correct |
0 ms |
348 KB |
ok |
13 |
Correct |
0 ms |
348 KB |
ok |
14 |
Correct |
0 ms |
348 KB |
ok |
15 |
Correct |
0 ms |
348 KB |
ok |
16 |
Correct |
0 ms |
348 KB |
ok |
17 |
Correct |
1724 ms |
432 KB |
ok |
18 |
Correct |
215 ms |
348 KB |
ok |
19 |
Correct |
9 ms |
348 KB |
ok |
20 |
Correct |
1 ms |
348 KB |
ok |
21 |
Correct |
0 ms |
348 KB |
ok |
22 |
Correct |
0 ms |
348 KB |
ok |
23 |
Correct |
0 ms |
348 KB |
ok |
24 |
Correct |
1 ms |
348 KB |
ok |
25 |
Correct |
1 ms |
348 KB |
ok |
26 |
Correct |
1 ms |
348 KB |
ok |
27 |
Correct |
8 ms |
348 KB |
ok |
28 |
Correct |
52 ms |
600 KB |
ok |
29 |
Correct |
13 ms |
344 KB |
ok |
30 |
Partially correct |
0 ms |
444 KB |
partial |
31 |
Partially correct |
0 ms |
348 KB |
partial |
32 |
Partially correct |
1 ms |
604 KB |
partial |
33 |
Partially correct |
0 ms |
344 KB |
partial |
34 |
Correct |
1 ms |
348 KB |
ok |
35 |
Correct |
0 ms |
348 KB |
ok |
36 |
Partially correct |
0 ms |
376 KB |
partial |
37 |
Partially correct |
1 ms |
348 KB |
partial |
38 |
Partially correct |
0 ms |
348 KB |
partial |
39 |
Partially correct |
0 ms |
604 KB |
partial |
40 |
Partially correct |
0 ms |
348 KB |
partial |
41 |
Partially correct |
0 ms |
504 KB |
partial |
42 |
Partially correct |
11 ms |
7004 KB |
partial |
43 |
Partially correct |
12 ms |
7004 KB |
partial |
44 |
Partially correct |
15 ms |
7064 KB |
partial |
45 |
Partially correct |
15 ms |
7128 KB |
partial |
46 |
Partially correct |
22 ms |
6992 KB |
partial |
47 |
Partially correct |
13 ms |
7060 KB |
partial |
48 |
Correct |
55 ms |
12000 KB |
ok |
49 |
Partially correct |
13 ms |
7116 KB |
partial |
50 |
Partially correct |
21 ms |
6996 KB |
partial |
51 |
Partially correct |
21 ms |
7000 KB |
partial |
52 |
Partially correct |
13 ms |
7004 KB |
partial |
53 |
Partially correct |
18 ms |
7004 KB |
partial |
54 |
Partially correct |
14 ms |
7000 KB |
partial |
55 |
Partially correct |
29 ms |
7056 KB |
partial |
56 |
Partially correct |
14 ms |
7256 KB |
partial |
57 |
Partially correct |
11 ms |
7000 KB |
partial |
58 |
Partially correct |
12 ms |
6928 KB |
partial |
59 |
Partially correct |
12 ms |
6932 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
456 KB |
ok |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Correct |
0 ms |
348 KB |
ok |
4 |
Correct |
0 ms |
348 KB |
ok |
5 |
Correct |
0 ms |
348 KB |
ok |
6 |
Correct |
0 ms |
348 KB |
ok |
7 |
Correct |
0 ms |
348 KB |
ok |
8 |
Correct |
0 ms |
348 KB |
ok |
9 |
Correct |
16 ms |
2212 KB |
ok |
10 |
Correct |
233 ms |
31792 KB |
ok |
11 |
Correct |
0 ms |
348 KB |
ok |
12 |
Correct |
0 ms |
348 KB |
ok |
13 |
Correct |
0 ms |
348 KB |
ok |
14 |
Correct |
0 ms |
348 KB |
ok |
15 |
Correct |
0 ms |
348 KB |
ok |
16 |
Correct |
0 ms |
348 KB |
ok |
17 |
Correct |
0 ms |
348 KB |
ok |
18 |
Correct |
0 ms |
348 KB |
ok |
19 |
Correct |
0 ms |
348 KB |
ok |
20 |
Correct |
0 ms |
348 KB |
ok |
21 |
Correct |
0 ms |
348 KB |
ok |
22 |
Correct |
1724 ms |
432 KB |
ok |
23 |
Correct |
215 ms |
348 KB |
ok |
24 |
Correct |
9 ms |
348 KB |
ok |
25 |
Correct |
1 ms |
348 KB |
ok |
26 |
Correct |
0 ms |
348 KB |
ok |
27 |
Correct |
0 ms |
348 KB |
ok |
28 |
Correct |
0 ms |
348 KB |
ok |
29 |
Correct |
1 ms |
348 KB |
ok |
30 |
Correct |
1 ms |
348 KB |
ok |
31 |
Correct |
1 ms |
348 KB |
ok |
32 |
Correct |
8 ms |
348 KB |
ok |
33 |
Correct |
52 ms |
600 KB |
ok |
34 |
Correct |
13 ms |
344 KB |
ok |
35 |
Partially correct |
0 ms |
444 KB |
partial |
36 |
Partially correct |
0 ms |
348 KB |
partial |
37 |
Partially correct |
1 ms |
604 KB |
partial |
38 |
Partially correct |
0 ms |
344 KB |
partial |
39 |
Correct |
1 ms |
348 KB |
ok |
40 |
Correct |
0 ms |
348 KB |
ok |
41 |
Partially correct |
0 ms |
376 KB |
partial |
42 |
Partially correct |
1 ms |
348 KB |
partial |
43 |
Partially correct |
0 ms |
348 KB |
partial |
44 |
Partially correct |
0 ms |
604 KB |
partial |
45 |
Partially correct |
0 ms |
348 KB |
partial |
46 |
Partially correct |
0 ms |
504 KB |
partial |
47 |
Partially correct |
11 ms |
7004 KB |
partial |
48 |
Partially correct |
12 ms |
7004 KB |
partial |
49 |
Partially correct |
15 ms |
7064 KB |
partial |
50 |
Partially correct |
15 ms |
7128 KB |
partial |
51 |
Partially correct |
22 ms |
6992 KB |
partial |
52 |
Partially correct |
13 ms |
7060 KB |
partial |
53 |
Correct |
55 ms |
12000 KB |
ok |
54 |
Partially correct |
13 ms |
7116 KB |
partial |
55 |
Partially correct |
21 ms |
6996 KB |
partial |
56 |
Partially correct |
21 ms |
7000 KB |
partial |
57 |
Partially correct |
13 ms |
7004 KB |
partial |
58 |
Partially correct |
18 ms |
7004 KB |
partial |
59 |
Partially correct |
14 ms |
7000 KB |
partial |
60 |
Partially correct |
29 ms |
7056 KB |
partial |
61 |
Partially correct |
14 ms |
7256 KB |
partial |
62 |
Partially correct |
11 ms |
7000 KB |
partial |
63 |
Partially correct |
12 ms |
6928 KB |
partial |
64 |
Partially correct |
12 ms |
6932 KB |
partial |
65 |
Partially correct |
254 ms |
73816 KB |
partial |
66 |
Partially correct |
191 ms |
73880 KB |
partial |
67 |
Partially correct |
173 ms |
73888 KB |
partial |
68 |
Partially correct |
194 ms |
73972 KB |
partial |
69 |
Partially correct |
180 ms |
73812 KB |
partial |
70 |
Partially correct |
230 ms |
73880 KB |
partial |
71 |
Partially correct |
210 ms |
73788 KB |
partial |
72 |
Partially correct |
183 ms |
73752 KB |
partial |
73 |
Correct |
2689 ms |
151300 KB |
ok |
74 |
Correct |
2765 ms |
151044 KB |
ok |
75 |
Partially correct |
221 ms |
73760 KB |
partial |
76 |
Partially correct |
222 ms |
73792 KB |
partial |
77 |
Partially correct |
172 ms |
73812 KB |
partial |
78 |
Partially correct |
233 ms |
73792 KB |
partial |
79 |
Partially correct |
212 ms |
73944 KB |
partial |
80 |
Partially correct |
186 ms |
73808 KB |
partial |
81 |
Partially correct |
254 ms |
73972 KB |
partial |
82 |
Partially correct |
247 ms |
73820 KB |
partial |
83 |
Partially correct |
257 ms |
73760 KB |
partial |
84 |
Partially correct |
265 ms |
73812 KB |
partial |
85 |
Partially correct |
280 ms |
74040 KB |
partial |
86 |
Partially correct |
319 ms |
73944 KB |
partial |
87 |
Partially correct |
388 ms |
73808 KB |
partial |
88 |
Partially correct |
215 ms |
73812 KB |
partial |
89 |
Partially correct |
168 ms |
73812 KB |
partial |
90 |
Partially correct |
221 ms |
74180 KB |
partial |
91 |
Partially correct |
172 ms |
73816 KB |
partial |
92 |
Partially correct |
183 ms |
73956 KB |
partial |
93 |
Partially correct |
182 ms |
73808 KB |
partial |
94 |
Partially correct |
180 ms |
73936 KB |
partial |
95 |
Partially correct |
172 ms |
73780 KB |
partial |
96 |
Partially correct |
187 ms |
73736 KB |
partial |
97 |
Partially correct |
168 ms |
73808 KB |
partial |
98 |
Partially correct |
196 ms |
73748 KB |
partial |
99 |
Partially correct |
209 ms |
73808 KB |
partial |
100 |
Partially correct |
174 ms |
73812 KB |
partial |
101 |
Partially correct |
172 ms |
73832 KB |
partial |
102 |
Partially correct |
172 ms |
73808 KB |
partial |
103 |
Partially correct |
174 ms |
73808 KB |
partial |
104 |
Partially correct |
168 ms |
73908 KB |
partial |
105 |
Partially correct |
172 ms |
73808 KB |
partial |
106 |
Partially correct |
178 ms |
73808 KB |
partial |
107 |
Partially correct |
171 ms |
73812 KB |
partial |
108 |
Partially correct |
176 ms |
73980 KB |
partial |
109 |
Partially correct |
195 ms |
73808 KB |
partial |