#include <bits/stdc++.h>
#include "soccer.h"
#define ll long long
#define ld long double
#define pb push_back
#define fi first
#define se second
#define en '\n'
#define sp ' '
#define tb '\t'
#define ri(n) int n; cin >> n
#define rl(n) ll n; cin >> n
#define rs(s) string s; cin >> s
#define rc(c) char c; cin >> c
#define rv(v) for (auto &x : v) cin >> x
#define pven(v) for (auto x : v) cout << x << en
#define pv(v) for (auto x : v) cout << x << sp; cout << en
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define yes cout << "YES" << en
#define no cout << "NO" << en
#define smin(a, b) a = min(a, b)
#define smax(a, b) a = max(a, b)
#define ssort(a, b) if (a < b) swap(a, b)
#define bitcnt(a) (__builtin_popcountll(a))
#define bithigh(a) (63-__builtin_clzll(a))
#define lg bithigh
#define highpow(a) (1LL << (ll)lg(a))
using namespace std;
const ll LINF = 2e18;
const int mxN = 2e3+10, INF = 2e9;
int n, a[mxN][mxN], preX[mxN][mxN], preY[mxN][mxN];
int SumRow(int i, int l, int r){
if (l>r) swap(l, r);
return preX[i][r] - preX[i][l-1];
}
int SumCol(int j, int l, int r){
if (l>r) swap(l, r);
return preY[r][j] - preY[l-1][j];
}
bool Check(int x1, int y1, int x2, int y2){
return
SumRow(x1, y1, y2) + SumCol(y2, x1, x2) == 0 ||
SumCol(y1, x1, x2) + SumRow(x2, y1, y2) == 0;
}
bool Check(int N, vector<vector<int> > F){
n = N;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
a[i+1][j+1] = F[i][j];
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
preX[i][j] = preY[i][j] = a[i][j];
for (int i = 1; i <= n; i++){
for (int j = 1; j <= n; j++){
preX[i][j] += preX[i][j-1];
preY[i][j] += preY[i-1][j];
}
}
for (int i = 0; i <= n+1; i++)
a[0][i] = a[i][0] = a[n+1][i] = a[i][n+1] = 1;
vector<array<int, 2> > v;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
if (!a[i][j] && a[i-1][j] + a[i+1][j] + a[i][j-1] + a[i][j+1])
v.pb({i, j});
for (auto [x1, y1] : v)
for (auto [x2, y2] : v)
if (!Check(x1, y1, x2, y2))
return 0;
return 1;
}
int One(int N, vector<vector<int> > F){
int x, y;
for (int i = 0; i < N; i++){
for (int j = 0; j < N; j++){
if (F[i][j]){
x = i; y = j;
}
}
}
return N*N - min(x+1, N-x) * min(y+1, N-y);
}
vector<vector<int> > Gen(int N, int mask){
vector<vector<int> > F(N, vector<int>(N, 1));
for (int i = 0; i < N*N; i++)
if (mask & (1 << i)) F[i/N][i%N] = 0;
return F;
}
int Brute(int N, vector<vector<int> > F){
int used = 0;
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
if (F[i][j]) used |= (1 << (i*N+j));
int ans = 1;
for (int mask = 1; mask < (1 << (N*N)); mask++)
if (((mask & used) == 0) && Check(N, Gen(N, mask)))
smax(ans, bitcnt(mask));
return ans;
}
int biggest_stadium(int N, vector<vector<int>> F){
int cnt = 0;
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
cnt += F[i][j];
if (cnt == 1) return One(N, F);
if (N <= 3) return Brute(N, F);
if (!Check(N, F)) return 0;
return N*N-cnt;
}
Compilation message
soccer.cpp: In function 'int One(int, std::vector<std::vector<int> >)':
soccer.cpp:93:39: warning: 'y' may be used uninitialized in this function [-Wmaybe-uninitialized]
93 | return N*N - min(x+1, N-x) * min(y+1, N-y);
| ~^~
soccer.cpp:93:23: warning: 'x' may be used uninitialized in this function [-Wmaybe-uninitialized]
93 | return N*N - min(x+1, N-x) * min(y+1, N-y);
| ~^~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Partially correct |
1 ms |
4444 KB |
partial |
# |
Verdict |
Execution time |
Memory |
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 |
1 ms |
348 KB |
ok |
5 |
Correct |
1 ms |
4440 KB |
ok |
6 |
Correct |
0 ms |
348 KB |
ok |
7 |
Correct |
1 ms |
480 KB |
ok |
8 |
Correct |
16 ms |
3232 KB |
ok |
9 |
Correct |
241 ms |
47444 KB |
ok |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
ok |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Correct |
1 ms |
4444 KB |
ok |
4 |
Correct |
1 ms |
4444 KB |
ok |
5 |
Correct |
1 ms |
4444 KB |
ok |
6 |
Correct |
1 ms |
4444 KB |
ok |
7 |
Correct |
1 ms |
4444 KB |
ok |
8 |
Correct |
1 ms |
4696 KB |
ok |
9 |
Correct |
1 ms |
4444 KB |
ok |
10 |
Correct |
1 ms |
4444 KB |
ok |
11 |
Correct |
1 ms |
4444 KB |
ok |
12 |
Correct |
1 ms |
4444 KB |
ok |
13 |
Correct |
1 ms |
4444 KB |
ok |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Partially correct |
1 ms |
4444 KB |
partial |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Correct |
0 ms |
348 KB |
ok |
4 |
Correct |
1 ms |
4444 KB |
ok |
5 |
Correct |
1 ms |
4444 KB |
ok |
6 |
Correct |
1 ms |
4444 KB |
ok |
7 |
Correct |
1 ms |
4444 KB |
ok |
8 |
Correct |
1 ms |
4444 KB |
ok |
9 |
Correct |
1 ms |
4696 KB |
ok |
10 |
Correct |
1 ms |
4444 KB |
ok |
11 |
Correct |
1 ms |
4444 KB |
ok |
12 |
Correct |
1 ms |
4444 KB |
ok |
13 |
Correct |
1 ms |
4444 KB |
ok |
14 |
Correct |
1 ms |
4444 KB |
ok |
15 |
Partially correct |
1 ms |
4444 KB |
partial |
16 |
Partially correct |
1 ms |
4444 KB |
partial |
17 |
Partially correct |
1 ms |
4444 KB |
partial |
18 |
Partially correct |
1 ms |
4444 KB |
partial |
19 |
Partially correct |
1 ms |
4444 KB |
partial |
20 |
Correct |
1 ms |
4444 KB |
ok |
21 |
Correct |
1 ms |
4444 KB |
ok |
22 |
Partially correct |
1 ms |
4444 KB |
partial |
23 |
Partially correct |
1 ms |
4444 KB |
partial |
24 |
Partially correct |
1 ms |
4444 KB |
partial |
25 |
Partially correct |
1 ms |
4444 KB |
partial |
26 |
Partially correct |
1 ms |
4444 KB |
partial |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Partially correct |
1 ms |
4444 KB |
partial |
2 |
Correct |
0 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 |
1 ms |
4444 KB |
ok |
7 |
Correct |
1 ms |
4444 KB |
ok |
8 |
Correct |
1 ms |
4444 KB |
ok |
9 |
Correct |
1 ms |
4444 KB |
ok |
10 |
Correct |
1 ms |
4444 KB |
ok |
11 |
Correct |
1 ms |
4696 KB |
ok |
12 |
Correct |
1 ms |
4444 KB |
ok |
13 |
Correct |
1 ms |
4444 KB |
ok |
14 |
Correct |
1 ms |
4444 KB |
ok |
15 |
Correct |
1 ms |
4444 KB |
ok |
16 |
Correct |
1 ms |
4444 KB |
ok |
17 |
Partially correct |
1 ms |
4444 KB |
partial |
18 |
Partially correct |
1 ms |
4444 KB |
partial |
19 |
Partially correct |
1 ms |
4444 KB |
partial |
20 |
Partially correct |
1 ms |
4444 KB |
partial |
21 |
Partially correct |
1 ms |
4444 KB |
partial |
22 |
Correct |
1 ms |
4444 KB |
ok |
23 |
Correct |
1 ms |
4444 KB |
ok |
24 |
Partially correct |
1 ms |
4444 KB |
partial |
25 |
Partially correct |
1 ms |
4444 KB |
partial |
26 |
Partially correct |
1 ms |
4444 KB |
partial |
27 |
Partially correct |
1 ms |
4444 KB |
partial |
28 |
Partially correct |
1 ms |
4444 KB |
partial |
29 |
Partially correct |
1 ms |
4444 KB |
partial |
30 |
Partially correct |
1 ms |
6492 KB |
partial |
31 |
Partially correct |
1 ms |
6492 KB |
partial |
32 |
Partially correct |
1 ms |
6492 KB |
partial |
33 |
Partially correct |
1 ms |
6488 KB |
partial |
34 |
Correct |
1 ms |
6492 KB |
ok |
35 |
Correct |
1 ms |
6492 KB |
ok |
36 |
Partially correct |
1 ms |
6492 KB |
partial |
37 |
Partially correct |
1 ms |
6492 KB |
partial |
38 |
Partially correct |
1 ms |
6492 KB |
partial |
39 |
Partially correct |
1 ms |
6492 KB |
partial |
40 |
Partially correct |
1 ms |
6492 KB |
partial |
41 |
Partially correct |
1 ms |
6492 KB |
partial |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Partially correct |
1 ms |
4444 KB |
partial |
2 |
Correct |
0 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 |
1 ms |
4444 KB |
ok |
7 |
Correct |
1 ms |
4444 KB |
ok |
8 |
Correct |
1 ms |
4444 KB |
ok |
9 |
Correct |
1 ms |
4444 KB |
ok |
10 |
Correct |
1 ms |
4444 KB |
ok |
11 |
Correct |
1 ms |
4696 KB |
ok |
12 |
Correct |
1 ms |
4444 KB |
ok |
13 |
Correct |
1 ms |
4444 KB |
ok |
14 |
Correct |
1 ms |
4444 KB |
ok |
15 |
Correct |
1 ms |
4444 KB |
ok |
16 |
Correct |
1 ms |
4444 KB |
ok |
17 |
Partially correct |
1 ms |
4444 KB |
partial |
18 |
Partially correct |
1 ms |
4444 KB |
partial |
19 |
Partially correct |
1 ms |
4444 KB |
partial |
20 |
Partially correct |
1 ms |
4444 KB |
partial |
21 |
Partially correct |
1 ms |
4444 KB |
partial |
22 |
Correct |
1 ms |
4444 KB |
ok |
23 |
Correct |
1 ms |
4444 KB |
ok |
24 |
Partially correct |
1 ms |
4444 KB |
partial |
25 |
Partially correct |
1 ms |
4444 KB |
partial |
26 |
Partially correct |
1 ms |
4444 KB |
partial |
27 |
Partially correct |
1 ms |
4444 KB |
partial |
28 |
Partially correct |
1 ms |
4444 KB |
partial |
29 |
Partially correct |
1 ms |
4444 KB |
partial |
30 |
Partially correct |
1 ms |
6492 KB |
partial |
31 |
Partially correct |
1 ms |
6492 KB |
partial |
32 |
Partially correct |
1 ms |
6492 KB |
partial |
33 |
Partially correct |
1 ms |
6488 KB |
partial |
34 |
Correct |
1 ms |
6492 KB |
ok |
35 |
Correct |
1 ms |
6492 KB |
ok |
36 |
Partially correct |
1 ms |
6492 KB |
partial |
37 |
Partially correct |
1 ms |
6492 KB |
partial |
38 |
Partially correct |
1 ms |
6492 KB |
partial |
39 |
Partially correct |
1 ms |
6492 KB |
partial |
40 |
Partially correct |
1 ms |
6492 KB |
partial |
41 |
Partially correct |
1 ms |
6492 KB |
partial |
42 |
Partially correct |
19 ms |
21204 KB |
partial |
43 |
Partially correct |
22 ms |
20964 KB |
partial |
44 |
Partially correct |
18 ms |
20056 KB |
partial |
45 |
Partially correct |
18 ms |
19876 KB |
partial |
46 |
Partially correct |
19 ms |
20448 KB |
partial |
47 |
Partially correct |
18 ms |
19804 KB |
partial |
48 |
Correct |
26 ms |
19804 KB |
ok |
49 |
Partially correct |
20 ms |
19804 KB |
partial |
50 |
Partially correct |
19 ms |
20956 KB |
partial |
51 |
Partially correct |
19 ms |
20508 KB |
partial |
52 |
Partially correct |
18 ms |
19804 KB |
partial |
53 |
Partially correct |
19 ms |
19804 KB |
partial |
54 |
Partially correct |
19 ms |
19804 KB |
partial |
55 |
Partially correct |
18 ms |
19796 KB |
partial |
56 |
Partially correct |
18 ms |
19804 KB |
partial |
57 |
Partially correct |
18 ms |
20120 KB |
partial |
58 |
Partially correct |
23 ms |
19804 KB |
partial |
59 |
Partially correct |
18 ms |
19804 KB |
partial |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Partially correct |
1 ms |
4444 KB |
partial |
2 |
Correct |
0 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 |
1 ms |
4440 KB |
ok |
7 |
Correct |
0 ms |
348 KB |
ok |
8 |
Correct |
1 ms |
480 KB |
ok |
9 |
Correct |
16 ms |
3232 KB |
ok |
10 |
Correct |
241 ms |
47444 KB |
ok |
11 |
Correct |
1 ms |
4444 KB |
ok |
12 |
Correct |
1 ms |
4444 KB |
ok |
13 |
Correct |
1 ms |
4444 KB |
ok |
14 |
Correct |
1 ms |
4444 KB |
ok |
15 |
Correct |
1 ms |
4444 KB |
ok |
16 |
Correct |
1 ms |
4696 KB |
ok |
17 |
Correct |
1 ms |
4444 KB |
ok |
18 |
Correct |
1 ms |
4444 KB |
ok |
19 |
Correct |
1 ms |
4444 KB |
ok |
20 |
Correct |
1 ms |
4444 KB |
ok |
21 |
Correct |
1 ms |
4444 KB |
ok |
22 |
Partially correct |
1 ms |
4444 KB |
partial |
23 |
Partially correct |
1 ms |
4444 KB |
partial |
24 |
Partially correct |
1 ms |
4444 KB |
partial |
25 |
Partially correct |
1 ms |
4444 KB |
partial |
26 |
Partially correct |
1 ms |
4444 KB |
partial |
27 |
Correct |
1 ms |
4444 KB |
ok |
28 |
Correct |
1 ms |
4444 KB |
ok |
29 |
Partially correct |
1 ms |
4444 KB |
partial |
30 |
Partially correct |
1 ms |
4444 KB |
partial |
31 |
Partially correct |
1 ms |
4444 KB |
partial |
32 |
Partially correct |
1 ms |
4444 KB |
partial |
33 |
Partially correct |
1 ms |
4444 KB |
partial |
34 |
Partially correct |
1 ms |
4444 KB |
partial |
35 |
Partially correct |
1 ms |
6492 KB |
partial |
36 |
Partially correct |
1 ms |
6492 KB |
partial |
37 |
Partially correct |
1 ms |
6492 KB |
partial |
38 |
Partially correct |
1 ms |
6488 KB |
partial |
39 |
Correct |
1 ms |
6492 KB |
ok |
40 |
Correct |
1 ms |
6492 KB |
ok |
41 |
Partially correct |
1 ms |
6492 KB |
partial |
42 |
Partially correct |
1 ms |
6492 KB |
partial |
43 |
Partially correct |
1 ms |
6492 KB |
partial |
44 |
Partially correct |
1 ms |
6492 KB |
partial |
45 |
Partially correct |
1 ms |
6492 KB |
partial |
46 |
Partially correct |
1 ms |
6492 KB |
partial |
47 |
Partially correct |
19 ms |
21204 KB |
partial |
48 |
Partially correct |
22 ms |
20964 KB |
partial |
49 |
Partially correct |
18 ms |
20056 KB |
partial |
50 |
Partially correct |
18 ms |
19876 KB |
partial |
51 |
Partially correct |
19 ms |
20448 KB |
partial |
52 |
Partially correct |
18 ms |
19804 KB |
partial |
53 |
Correct |
26 ms |
19804 KB |
ok |
54 |
Partially correct |
20 ms |
19804 KB |
partial |
55 |
Partially correct |
19 ms |
20956 KB |
partial |
56 |
Partially correct |
19 ms |
20508 KB |
partial |
57 |
Partially correct |
18 ms |
19804 KB |
partial |
58 |
Partially correct |
19 ms |
19804 KB |
partial |
59 |
Partially correct |
19 ms |
19804 KB |
partial |
60 |
Partially correct |
18 ms |
19796 KB |
partial |
61 |
Partially correct |
18 ms |
19804 KB |
partial |
62 |
Partially correct |
18 ms |
20120 KB |
partial |
63 |
Partially correct |
23 ms |
19804 KB |
partial |
64 |
Partially correct |
18 ms |
19804 KB |
partial |
65 |
Partially correct |
300 ms |
113020 KB |
partial |
66 |
Partially correct |
293 ms |
113168 KB |
partial |
67 |
Partially correct |
269 ms |
100036 KB |
partial |
68 |
Partially correct |
261 ms |
95264 KB |
partial |
69 |
Partially correct |
262 ms |
96964 KB |
partial |
70 |
Partially correct |
311 ms |
99984 KB |
partial |
71 |
Partially correct |
258 ms |
95004 KB |
partial |
72 |
Partially correct |
265 ms |
94980 KB |
partial |
73 |
Correct |
474 ms |
95100 KB |
ok |
74 |
Correct |
458 ms |
95092 KB |
ok |
75 |
Partially correct |
288 ms |
95008 KB |
partial |
76 |
Partially correct |
295 ms |
112048 KB |
partial |
77 |
Partially correct |
283 ms |
112516 KB |
partial |
78 |
Partially correct |
267 ms |
101264 KB |
partial |
79 |
Partially correct |
273 ms |
97172 KB |
partial |
80 |
Partially correct |
281 ms |
96964 KB |
partial |
81 |
Partially correct |
288 ms |
95948 KB |
partial |
82 |
Partially correct |
262 ms |
96964 KB |
partial |
83 |
Partially correct |
270 ms |
104896 KB |
partial |
84 |
Partially correct |
275 ms |
95008 KB |
partial |
85 |
Partially correct |
272 ms |
95004 KB |
partial |
86 |
Partially correct |
263 ms |
94800 KB |
partial |
87 |
Partially correct |
262 ms |
95312 KB |
partial |
88 |
Partially correct |
258 ms |
94936 KB |
partial |
89 |
Partially correct |
273 ms |
95012 KB |
partial |
90 |
Partially correct |
285 ms |
94956 KB |
partial |
91 |
Partially correct |
260 ms |
95256 KB |
partial |
92 |
Partially correct |
266 ms |
100752 KB |
partial |
93 |
Partially correct |
286 ms |
100244 KB |
partial |
94 |
Partially correct |
260 ms |
99724 KB |
partial |
95 |
Partially correct |
263 ms |
100760 KB |
partial |
96 |
Partially correct |
272 ms |
101020 KB |
partial |
97 |
Partially correct |
265 ms |
99232 KB |
partial |
98 |
Partially correct |
260 ms |
96964 KB |
partial |
99 |
Partially correct |
265 ms |
100544 KB |
partial |
100 |
Partially correct |
262 ms |
95020 KB |
partial |
101 |
Partially correct |
264 ms |
95004 KB |
partial |
102 |
Partially correct |
261 ms |
94980 KB |
partial |
103 |
Partially correct |
268 ms |
95008 KB |
partial |
104 |
Partially correct |
264 ms |
95060 KB |
partial |
105 |
Partially correct |
258 ms |
95024 KB |
partial |
106 |
Partially correct |
262 ms |
95020 KB |
partial |
107 |
Partially correct |
255 ms |
95060 KB |
partial |
108 |
Partially correct |
270 ms |
111468 KB |
partial |
109 |
Partially correct |
272 ms |
112476 KB |
partial |