#define _USE_MATH_DEFINES
#include <bits/stdc++.h>
#define ff first
#define ss second
#define pb push_back
#define all(a) (a).begin(), (a).end()
#define replr(i, a, b) for (int i = int(a); i <= int(b); ++i)
#define reprl(i, a, b) for (int i = int(a); i >= int(b); --i)
#define rep(i, n) for (int i = 0; i < int(n); ++i)
#define mkp(a, b) make_pair(a, b)
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> PII;
typedef vector<int> VI;
typedef vector<PII> VPI;
typedef vector<VI> VVI;
typedef vector<VVI> VVVI;
typedef vector<VPI> VVPI;
typedef pair<ll, ll> PLL;
typedef vector<ll> VL;
typedef vector<PLL> VPL;
typedef vector<VL> VVL;
typedef vector<VVL> VVVL;
typedef vector<VPL> VVPL;
template<class T> T setmax(T& a, T b) {if (a < b) return a = b; return a;}
template<class T> T setmin(T& a, T b) {if (a < b) return a; return a = b;}
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
template<class T>
using indset = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
#include "soccer.h"
int n;
VVI a;
VVI prefv;
VVI prefh;
bool canv(int ux, int uy, int vx, int vy) {
int y = uy;
int l, r;
if (ux < vx) l = ux, r = vx;
else l = vx, r = ux;
return (prefv[r+1][y] - prefv[l][y]) == 0;
}
bool canh(int ux, int uy, int vx, int vy) {
int x = ux;
int l, r;
if (uy < vy) l = uy, r = vy;
else l = vy, r = uy;
return (prefh[x][r+1] - prefh[x][l]) == 0;
}
bool can1(int ux, int uy, int vx, int vy) {
return canv(ux, uy, vx, uy) && canh(vx, uy, vx, vy);
}
bool can2(int ux, int uy, int vx, int vy) {
return canh(ux, uy, ux, vy) && canv(ux, vy, vx, vy);
}
bool can(int ux, int uy, int vx, int vy) {
return can1(ux, uy, vx, vy) || can2(ux, uy, vx, vy);
}
VPI cucak;
bool can() {
/*rep(ux, n) rep(uy, n) if (a[ux][uy] == 0) {*/
/* rep(vx, n) rep(vy, n) if (a[vx][vy] == 0) {*/
for (auto[ux, uy] : cucak) {
for (auto[vx, vy] : cucak) {
if (can(ux, uy, vx, vy));
else return 0;
}
}
return true;
}
void tarmacnel() {
cucak = VPI();
rep(i, n) rep(j, n) if (a[i][j] == 0) {
if (i == 0 || j == 0 || i == n-1 || j == n-1) cucak.pb({i, j});
else {
if (a[i-1][j] == 1 || a[i+1][j] == 1 || a[i][j-1] || a[i][j+1]) cucak.pb({i, j});
}
}
}
int biggest_stadium(int N, VVI A_ARG) {
n = N;
a = A_ARG;
rep(_, 1) {
int x, y;
int cnt = 0;
rep(i, n) rep(j, n) if (a[i][j] == 1) x = i, y = j, cnt++;
if (cnt == 0) return n*n;
if (cnt > 1) break;
int ans = 0;
setmax(ans, n*n - (x+1)*(y+1));
setmax(ans, n*n - (x+1)*(n-y));
setmax(ans, n*n - (n-x)*(y+1));
setmax(ans, n*n - (n-x)*(n-y));
return ans;
}
prefv = prefh = VVI(n+1, VI(n+1));
rep(i, n) {
rep(j, n) prefh[i][j+1] = prefh[i][j] + a[i][j];
}
rep(j, n) {
rep(i, n) prefv[i+1][j] = prefv[i][j] + a[i][j];
}
tarmacnel();
if (N <= 3) {
int ans = 0;
VVI atmp = a;
rep(s, (1<<(n*n))) {
a = atmp;
rep(i, n) rep(j, n) if (a[i][j] == 0) {
a[i][j] = (s & (1<<(n*i+j)));
}
tarmacnel();
if (can()) {
int cur = 0;
rep(i, n) rep(j, n) if (a[i][j] == 0) cur++;
setmax(ans, cur);
}
}
return ans;
}
if (!can()) return 0;
int ans = 0;
rep(i, n) rep(j, n) if (a[i][j] == 0) ans++;
return ans;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
348 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
348 KB |
ok |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Correct |
0 ms |
348 KB |
ok |
4 |
Correct |
1 ms |
348 KB |
ok |
5 |
Correct |
0 ms |
436 KB |
ok |
6 |
Correct |
0 ms |
348 KB |
ok |
7 |
Correct |
1 ms |
348 KB |
ok |
8 |
Correct |
13 ms |
3780 KB |
ok |
9 |
Correct |
215 ms |
54868 KB |
ok |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
348 KB |
ok |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Correct |
0 ms |
344 KB |
ok |
4 |
Correct |
0 ms |
348 KB |
ok |
5 |
Correct |
1 ms |
436 KB |
ok |
6 |
Correct |
1 ms |
348 KB |
ok |
7 |
Correct |
0 ms |
348 KB |
ok |
8 |
Correct |
0 ms |
348 KB |
ok |
9 |
Correct |
1 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 |
1 ms |
348 KB |
ok |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
348 KB |
partial |
2 |
Correct |
1 ms |
348 KB |
ok |
3 |
Correct |
0 ms |
348 KB |
ok |
4 |
Correct |
0 ms |
344 KB |
ok |
5 |
Correct |
0 ms |
348 KB |
ok |
6 |
Correct |
1 ms |
436 KB |
ok |
7 |
Correct |
1 ms |
348 KB |
ok |
8 |
Correct |
0 ms |
348 KB |
ok |
9 |
Correct |
0 ms |
348 KB |
ok |
10 |
Correct |
1 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 |
1 ms |
348 KB |
ok |
15 |
Partially correct |
0 ms |
344 KB |
partial |
16 |
Partially correct |
0 ms |
348 KB |
partial |
17 |
Partially correct |
0 ms |
348 KB |
partial |
18 |
Partially correct |
0 ms |
348 KB |
partial |
19 |
Partially correct |
0 ms |
348 KB |
partial |
20 |
Correct |
0 ms |
348 KB |
ok |
21 |
Correct |
0 ms |
432 KB |
ok |
22 |
Partially correct |
0 ms |
348 KB |
partial |
23 |
Partially correct |
0 ms |
348 KB |
partial |
24 |
Partially correct |
0 ms |
344 KB |
partial |
25 |
Partially correct |
1 ms |
348 KB |
partial |
26 |
Partially correct |
0 ms |
348 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
348 KB |
partial |
2 |
Correct |
1 ms |
348 KB |
ok |
3 |
Correct |
0 ms |
348 KB |
ok |
4 |
Correct |
0 ms |
348 KB |
ok |
5 |
Correct |
1 ms |
348 KB |
ok |
6 |
Correct |
0 ms |
344 KB |
ok |
7 |
Correct |
0 ms |
348 KB |
ok |
8 |
Correct |
1 ms |
436 KB |
ok |
9 |
Correct |
1 ms |
348 KB |
ok |
10 |
Correct |
0 ms |
348 KB |
ok |
11 |
Correct |
0 ms |
348 KB |
ok |
12 |
Correct |
1 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 |
1 ms |
348 KB |
ok |
17 |
Partially correct |
0 ms |
344 KB |
partial |
18 |
Partially correct |
0 ms |
348 KB |
partial |
19 |
Partially correct |
0 ms |
348 KB |
partial |
20 |
Partially correct |
0 ms |
348 KB |
partial |
21 |
Partially correct |
0 ms |
348 KB |
partial |
22 |
Correct |
0 ms |
348 KB |
ok |
23 |
Correct |
0 ms |
432 KB |
ok |
24 |
Partially correct |
0 ms |
348 KB |
partial |
25 |
Partially correct |
0 ms |
348 KB |
partial |
26 |
Partially correct |
0 ms |
344 KB |
partial |
27 |
Partially correct |
1 ms |
348 KB |
partial |
28 |
Partially correct |
0 ms |
348 KB |
partial |
29 |
Partially correct |
0 ms |
348 KB |
partial |
30 |
Partially correct |
1 ms |
600 KB |
partial |
31 |
Partially correct |
0 ms |
348 KB |
partial |
32 |
Partially correct |
0 ms |
348 KB |
partial |
33 |
Partially correct |
0 ms |
348 KB |
partial |
34 |
Correct |
0 ms |
348 KB |
ok |
35 |
Correct |
0 ms |
348 KB |
ok |
36 |
Partially correct |
0 ms |
348 KB |
partial |
37 |
Partially correct |
1 ms |
348 KB |
partial |
38 |
Partially correct |
0 ms |
348 KB |
partial |
39 |
Partially correct |
0 ms |
348 KB |
partial |
40 |
Partially correct |
0 ms |
344 KB |
partial |
41 |
Partially correct |
0 ms |
604 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
348 KB |
partial |
2 |
Correct |
1 ms |
348 KB |
ok |
3 |
Correct |
0 ms |
348 KB |
ok |
4 |
Correct |
0 ms |
348 KB |
ok |
5 |
Correct |
1 ms |
348 KB |
ok |
6 |
Correct |
0 ms |
344 KB |
ok |
7 |
Correct |
0 ms |
348 KB |
ok |
8 |
Correct |
1 ms |
436 KB |
ok |
9 |
Correct |
1 ms |
348 KB |
ok |
10 |
Correct |
0 ms |
348 KB |
ok |
11 |
Correct |
0 ms |
348 KB |
ok |
12 |
Correct |
1 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 |
1 ms |
348 KB |
ok |
17 |
Partially correct |
0 ms |
344 KB |
partial |
18 |
Partially correct |
0 ms |
348 KB |
partial |
19 |
Partially correct |
0 ms |
348 KB |
partial |
20 |
Partially correct |
0 ms |
348 KB |
partial |
21 |
Partially correct |
0 ms |
348 KB |
partial |
22 |
Correct |
0 ms |
348 KB |
ok |
23 |
Correct |
0 ms |
432 KB |
ok |
24 |
Partially correct |
0 ms |
348 KB |
partial |
25 |
Partially correct |
0 ms |
348 KB |
partial |
26 |
Partially correct |
0 ms |
344 KB |
partial |
27 |
Partially correct |
1 ms |
348 KB |
partial |
28 |
Partially correct |
0 ms |
348 KB |
partial |
29 |
Partially correct |
0 ms |
348 KB |
partial |
30 |
Partially correct |
1 ms |
600 KB |
partial |
31 |
Partially correct |
0 ms |
348 KB |
partial |
32 |
Partially correct |
0 ms |
348 KB |
partial |
33 |
Partially correct |
0 ms |
348 KB |
partial |
34 |
Correct |
0 ms |
348 KB |
ok |
35 |
Correct |
0 ms |
348 KB |
ok |
36 |
Partially correct |
0 ms |
348 KB |
partial |
37 |
Partially correct |
1 ms |
348 KB |
partial |
38 |
Partially correct |
0 ms |
348 KB |
partial |
39 |
Partially correct |
0 ms |
348 KB |
partial |
40 |
Partially correct |
0 ms |
344 KB |
partial |
41 |
Partially correct |
0 ms |
604 KB |
partial |
42 |
Partially correct |
17 ms |
6876 KB |
partial |
43 |
Partially correct |
17 ms |
6872 KB |
partial |
44 |
Partially correct |
15 ms |
5980 KB |
partial |
45 |
Partially correct |
14 ms |
5980 KB |
partial |
46 |
Partially correct |
19 ms |
6356 KB |
partial |
47 |
Partially correct |
15 ms |
5724 KB |
partial |
48 |
Correct |
22 ms |
5724 KB |
ok |
49 |
Partially correct |
18 ms |
5720 KB |
partial |
50 |
Partially correct |
16 ms |
6916 KB |
partial |
51 |
Partially correct |
16 ms |
6368 KB |
partial |
52 |
Partially correct |
18 ms |
5712 KB |
partial |
53 |
Partially correct |
20 ms |
5720 KB |
partial |
54 |
Partially correct |
20 ms |
5772 KB |
partial |
55 |
Partially correct |
15 ms |
5896 KB |
partial |
56 |
Partially correct |
14 ms |
5976 KB |
partial |
57 |
Partially correct |
15 ms |
5900 KB |
partial |
58 |
Partially correct |
15 ms |
5724 KB |
partial |
59 |
Partially correct |
15 ms |
5980 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
348 KB |
partial |
2 |
Correct |
1 ms |
348 KB |
ok |
3 |
Correct |
0 ms |
348 KB |
ok |
4 |
Correct |
0 ms |
348 KB |
ok |
5 |
Correct |
1 ms |
348 KB |
ok |
6 |
Correct |
0 ms |
436 KB |
ok |
7 |
Correct |
0 ms |
348 KB |
ok |
8 |
Correct |
1 ms |
348 KB |
ok |
9 |
Correct |
13 ms |
3780 KB |
ok |
10 |
Correct |
215 ms |
54868 KB |
ok |
11 |
Correct |
0 ms |
344 KB |
ok |
12 |
Correct |
0 ms |
348 KB |
ok |
13 |
Correct |
1 ms |
436 KB |
ok |
14 |
Correct |
1 ms |
348 KB |
ok |
15 |
Correct |
0 ms |
348 KB |
ok |
16 |
Correct |
0 ms |
348 KB |
ok |
17 |
Correct |
1 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 |
1 ms |
348 KB |
ok |
22 |
Partially correct |
0 ms |
344 KB |
partial |
23 |
Partially correct |
0 ms |
348 KB |
partial |
24 |
Partially correct |
0 ms |
348 KB |
partial |
25 |
Partially correct |
0 ms |
348 KB |
partial |
26 |
Partially correct |
0 ms |
348 KB |
partial |
27 |
Correct |
0 ms |
348 KB |
ok |
28 |
Correct |
0 ms |
432 KB |
ok |
29 |
Partially correct |
0 ms |
348 KB |
partial |
30 |
Partially correct |
0 ms |
348 KB |
partial |
31 |
Partially correct |
0 ms |
344 KB |
partial |
32 |
Partially correct |
1 ms |
348 KB |
partial |
33 |
Partially correct |
0 ms |
348 KB |
partial |
34 |
Partially correct |
0 ms |
348 KB |
partial |
35 |
Partially correct |
1 ms |
600 KB |
partial |
36 |
Partially correct |
0 ms |
348 KB |
partial |
37 |
Partially correct |
0 ms |
348 KB |
partial |
38 |
Partially correct |
0 ms |
348 KB |
partial |
39 |
Correct |
0 ms |
348 KB |
ok |
40 |
Correct |
0 ms |
348 KB |
ok |
41 |
Partially correct |
0 ms |
348 KB |
partial |
42 |
Partially correct |
1 ms |
348 KB |
partial |
43 |
Partially correct |
0 ms |
348 KB |
partial |
44 |
Partially correct |
0 ms |
348 KB |
partial |
45 |
Partially correct |
0 ms |
344 KB |
partial |
46 |
Partially correct |
0 ms |
604 KB |
partial |
47 |
Partially correct |
17 ms |
6876 KB |
partial |
48 |
Partially correct |
17 ms |
6872 KB |
partial |
49 |
Partially correct |
15 ms |
5980 KB |
partial |
50 |
Partially correct |
14 ms |
5980 KB |
partial |
51 |
Partially correct |
19 ms |
6356 KB |
partial |
52 |
Partially correct |
15 ms |
5724 KB |
partial |
53 |
Correct |
22 ms |
5724 KB |
ok |
54 |
Partially correct |
18 ms |
5720 KB |
partial |
55 |
Partially correct |
16 ms |
6916 KB |
partial |
56 |
Partially correct |
16 ms |
6368 KB |
partial |
57 |
Partially correct |
18 ms |
5712 KB |
partial |
58 |
Partially correct |
20 ms |
5720 KB |
partial |
59 |
Partially correct |
20 ms |
5772 KB |
partial |
60 |
Partially correct |
15 ms |
5896 KB |
partial |
61 |
Partially correct |
14 ms |
5976 KB |
partial |
62 |
Partially correct |
15 ms |
5900 KB |
partial |
63 |
Partially correct |
15 ms |
5724 KB |
partial |
64 |
Partially correct |
15 ms |
5980 KB |
partial |
65 |
Partially correct |
288 ms |
99676 KB |
partial |
66 |
Partially correct |
312 ms |
103348 KB |
partial |
67 |
Partially correct |
280 ms |
91072 KB |
partial |
68 |
Partially correct |
285 ms |
84644 KB |
partial |
69 |
Partially correct |
313 ms |
89224 KB |
partial |
70 |
Partially correct |
262 ms |
91072 KB |
partial |
71 |
Partially correct |
261 ms |
86928 KB |
partial |
72 |
Partially correct |
260 ms |
87176 KB |
partial |
73 |
Correct |
452 ms |
87120 KB |
ok |
74 |
Correct |
462 ms |
86864 KB |
ok |
75 |
Partially correct |
262 ms |
86868 KB |
partial |
76 |
Partially correct |
283 ms |
103456 KB |
partial |
77 |
Partially correct |
300 ms |
103096 KB |
partial |
78 |
Partially correct |
259 ms |
91072 KB |
partial |
79 |
Partially correct |
307 ms |
89028 KB |
partial |
80 |
Partially correct |
279 ms |
89096 KB |
partial |
81 |
Partially correct |
263 ms |
87952 KB |
partial |
82 |
Partially correct |
287 ms |
89088 KB |
partial |
83 |
Partially correct |
314 ms |
95164 KB |
partial |
84 |
Partially correct |
307 ms |
86872 KB |
partial |
85 |
Partially correct |
284 ms |
86868 KB |
partial |
86 |
Partially correct |
269 ms |
86864 KB |
partial |
87 |
Partially correct |
309 ms |
86868 KB |
partial |
88 |
Partially correct |
257 ms |
86928 KB |
partial |
89 |
Partially correct |
256 ms |
85844 KB |
partial |
90 |
Partially correct |
253 ms |
87052 KB |
partial |
91 |
Partially correct |
281 ms |
87308 KB |
partial |
92 |
Partially correct |
269 ms |
91132 KB |
partial |
93 |
Partially correct |
296 ms |
91072 KB |
partial |
94 |
Partially correct |
261 ms |
91080 KB |
partial |
95 |
Partially correct |
291 ms |
91072 KB |
partial |
96 |
Partially correct |
265 ms |
91072 KB |
partial |
97 |
Partially correct |
279 ms |
91076 KB |
partial |
98 |
Partially correct |
273 ms |
89104 KB |
partial |
99 |
Partially correct |
279 ms |
91076 KB |
partial |
100 |
Partially correct |
267 ms |
87124 KB |
partial |
101 |
Partially correct |
272 ms |
87124 KB |
partial |
102 |
Partially correct |
252 ms |
86936 KB |
partial |
103 |
Partially correct |
252 ms |
87120 KB |
partial |
104 |
Partially correct |
272 ms |
87124 KB |
partial |
105 |
Partially correct |
258 ms |
86928 KB |
partial |
106 |
Partially correct |
255 ms |
87124 KB |
partial |
107 |
Partially correct |
266 ms |
86936 KB |
partial |
108 |
Partially correct |
318 ms |
103412 KB |
partial |
109 |
Partially correct |
311 ms |
103416 KB |
partial |