#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 min(min((x+1)*(y+1), (x+1)*(N-y)), min((N-x)*(y-1), (N-x)*(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 && false) return One(N, F);
if (N <= 3 && false) return Brute(N, F);
if (!Check(N, F)) return 0;
return N*N-cnt;
}
Compilation message
soccer.cpp: In function 'int Brute(int, std::vector<std::vector<int> >)':
soccer.cpp:112:26: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
112 | if ((mask & used == 0) && Check(N, Gen(N, mask)))
| ~~~~~^~~~
soccer.cpp: In function 'int One(int, std::vector<std::vector<int> >)':
soccer.cpp:93:28: warning: 'y' may be used uninitialized in this function [-Wmaybe-uninitialized]
93 | return min(min((x+1)*(y+1), (x+1)*(N-y)), min((N-x)*(y-1), (N-x)*(N-y)));
| ~~^~~
soccer.cpp:93:35: warning: 'x' may be used uninitialized in this function [-Wmaybe-uninitialized]
93 | return min(min((x+1)*(y+1), (x+1)*(N-y)), min((N-x)*(y-1), (N-x)*(N-y)));
| ~~^~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
4444 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
4444 KB |
ok |
2 |
Correct |
0 ms |
4444 KB |
ok |
3 |
Correct |
1 ms |
4444 KB |
ok |
4 |
Correct |
1 ms |
4696 KB |
ok |
5 |
Correct |
1 ms |
4440 KB |
ok |
6 |
Partially correct |
1 ms |
4444 KB |
partial |
7 |
Partially correct |
2 ms |
8796 KB |
partial |
8 |
Partially correct |
19 ms |
19800 KB |
partial |
9 |
Partially correct |
268 ms |
94980 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
4444 KB |
ok |
2 |
Correct |
0 ms |
4444 KB |
ok |
3 |
Partially correct |
1 ms |
4444 KB |
partial |
4 |
Partially correct |
1 ms |
4444 KB |
partial |
5 |
Partially correct |
1 ms |
4444 KB |
partial |
6 |
Partially correct |
1 ms |
4444 KB |
partial |
7 |
Partially correct |
1 ms |
4444 KB |
partial |
8 |
Correct |
1 ms |
4444 KB |
ok |
9 |
Correct |
1 ms |
4444 KB |
ok |
10 |
Partially correct |
1 ms |
4444 KB |
partial |
11 |
Partially correct |
1 ms |
4444 KB |
partial |
12 |
Partially correct |
1 ms |
4444 KB |
partial |
13 |
Correct |
1 ms |
4444 KB |
ok |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
4444 KB |
partial |
2 |
Correct |
1 ms |
4444 KB |
ok |
3 |
Correct |
0 ms |
4444 KB |
ok |
4 |
Partially correct |
1 ms |
4444 KB |
partial |
5 |
Partially correct |
1 ms |
4444 KB |
partial |
6 |
Partially correct |
1 ms |
4444 KB |
partial |
7 |
Partially correct |
1 ms |
4444 KB |
partial |
8 |
Partially correct |
1 ms |
4444 KB |
partial |
9 |
Correct |
1 ms |
4444 KB |
ok |
10 |
Correct |
1 ms |
4444 KB |
ok |
11 |
Partially correct |
1 ms |
4444 KB |
partial |
12 |
Partially correct |
1 ms |
4444 KB |
partial |
13 |
Partially correct |
1 ms |
4444 KB |
partial |
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 |
4440 KB |
partial |
20 |
Correct |
1 ms |
4444 KB |
ok |
21 |
Correct |
1 ms |
4444 KB |
ok |
22 |
Partially correct |
1 ms |
4440 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 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
4444 KB |
partial |
2 |
Correct |
1 ms |
4444 KB |
ok |
3 |
Correct |
0 ms |
4444 KB |
ok |
4 |
Correct |
1 ms |
4444 KB |
ok |
5 |
Correct |
1 ms |
4696 KB |
ok |
6 |
Partially correct |
1 ms |
4444 KB |
partial |
7 |
Partially correct |
1 ms |
4444 KB |
partial |
8 |
Partially correct |
1 ms |
4444 KB |
partial |
9 |
Partially correct |
1 ms |
4444 KB |
partial |
10 |
Partially correct |
1 ms |
4444 KB |
partial |
11 |
Correct |
1 ms |
4444 KB |
ok |
12 |
Correct |
1 ms |
4444 KB |
ok |
13 |
Partially correct |
1 ms |
4444 KB |
partial |
14 |
Partially correct |
1 ms |
4444 KB |
partial |
15 |
Partially correct |
1 ms |
4444 KB |
partial |
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 |
4440 KB |
partial |
22 |
Correct |
1 ms |
4444 KB |
ok |
23 |
Correct |
1 ms |
4444 KB |
ok |
24 |
Partially correct |
1 ms |
4440 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 |
6492 KB |
partial |
34 |
Correct |
1 ms |
6744 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 |
6488 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 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
4444 KB |
partial |
2 |
Correct |
1 ms |
4444 KB |
ok |
3 |
Correct |
0 ms |
4444 KB |
ok |
4 |
Correct |
1 ms |
4444 KB |
ok |
5 |
Correct |
1 ms |
4696 KB |
ok |
6 |
Partially correct |
1 ms |
4444 KB |
partial |
7 |
Partially correct |
1 ms |
4444 KB |
partial |
8 |
Partially correct |
1 ms |
4444 KB |
partial |
9 |
Partially correct |
1 ms |
4444 KB |
partial |
10 |
Partially correct |
1 ms |
4444 KB |
partial |
11 |
Correct |
1 ms |
4444 KB |
ok |
12 |
Correct |
1 ms |
4444 KB |
ok |
13 |
Partially correct |
1 ms |
4444 KB |
partial |
14 |
Partially correct |
1 ms |
4444 KB |
partial |
15 |
Partially correct |
1 ms |
4444 KB |
partial |
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 |
4440 KB |
partial |
22 |
Correct |
1 ms |
4444 KB |
ok |
23 |
Correct |
1 ms |
4444 KB |
ok |
24 |
Partially correct |
1 ms |
4440 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 |
6492 KB |
partial |
34 |
Correct |
1 ms |
6744 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 |
6488 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 |
21028 KB |
partial |
43 |
Partially correct |
19 ms |
20952 KB |
partial |
44 |
Partially correct |
17 ms |
20060 KB |
partial |
45 |
Partially correct |
17 ms |
19868 KB |
partial |
46 |
Partially correct |
18 ms |
20448 KB |
partial |
47 |
Partially correct |
17 ms |
19872 KB |
partial |
48 |
Correct |
28 ms |
19804 KB |
ok |
49 |
Partially correct |
20 ms |
19800 KB |
partial |
50 |
Partially correct |
19 ms |
20956 KB |
partial |
51 |
Partially correct |
21 ms |
20448 KB |
partial |
52 |
Partially correct |
17 ms |
19804 KB |
partial |
53 |
Partially correct |
18 ms |
19800 KB |
partial |
54 |
Partially correct |
17 ms |
19804 KB |
partial |
55 |
Partially correct |
17 ms |
19804 KB |
partial |
56 |
Partially correct |
17 ms |
19804 KB |
partial |
57 |
Partially correct |
17 ms |
19868 KB |
partial |
58 |
Partially correct |
17 ms |
19800 KB |
partial |
59 |
Partially correct |
17 ms |
19800 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
4444 KB |
partial |
2 |
Correct |
1 ms |
4444 KB |
ok |
3 |
Correct |
0 ms |
4444 KB |
ok |
4 |
Correct |
1 ms |
4444 KB |
ok |
5 |
Correct |
1 ms |
4696 KB |
ok |
6 |
Correct |
1 ms |
4440 KB |
ok |
7 |
Partially correct |
1 ms |
4444 KB |
partial |
8 |
Partially correct |
2 ms |
8796 KB |
partial |
9 |
Partially correct |
19 ms |
19800 KB |
partial |
10 |
Partially correct |
268 ms |
94980 KB |
partial |
11 |
Partially correct |
1 ms |
4444 KB |
partial |
12 |
Partially correct |
1 ms |
4444 KB |
partial |
13 |
Partially correct |
1 ms |
4444 KB |
partial |
14 |
Partially correct |
1 ms |
4444 KB |
partial |
15 |
Partially correct |
1 ms |
4444 KB |
partial |
16 |
Correct |
1 ms |
4444 KB |
ok |
17 |
Correct |
1 ms |
4444 KB |
ok |
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 |
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 |
4440 KB |
partial |
27 |
Correct |
1 ms |
4444 KB |
ok |
28 |
Correct |
1 ms |
4444 KB |
ok |
29 |
Partially correct |
1 ms |
4440 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 |
6492 KB |
partial |
39 |
Correct |
1 ms |
6744 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 |
6488 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 |
21028 KB |
partial |
48 |
Partially correct |
19 ms |
20952 KB |
partial |
49 |
Partially correct |
17 ms |
20060 KB |
partial |
50 |
Partially correct |
17 ms |
19868 KB |
partial |
51 |
Partially correct |
18 ms |
20448 KB |
partial |
52 |
Partially correct |
17 ms |
19872 KB |
partial |
53 |
Correct |
28 ms |
19804 KB |
ok |
54 |
Partially correct |
20 ms |
19800 KB |
partial |
55 |
Partially correct |
19 ms |
20956 KB |
partial |
56 |
Partially correct |
21 ms |
20448 KB |
partial |
57 |
Partially correct |
17 ms |
19804 KB |
partial |
58 |
Partially correct |
18 ms |
19800 KB |
partial |
59 |
Partially correct |
17 ms |
19804 KB |
partial |
60 |
Partially correct |
17 ms |
19804 KB |
partial |
61 |
Partially correct |
17 ms |
19804 KB |
partial |
62 |
Partially correct |
17 ms |
19868 KB |
partial |
63 |
Partially correct |
17 ms |
19800 KB |
partial |
64 |
Partially correct |
17 ms |
19800 KB |
partial |
65 |
Partially correct |
265 ms |
112056 KB |
partial |
66 |
Partially correct |
270 ms |
112260 KB |
partial |
67 |
Partially correct |
254 ms |
99776 KB |
partial |
68 |
Partially correct |
245 ms |
95256 KB |
partial |
69 |
Partially correct |
255 ms |
97168 KB |
partial |
70 |
Partially correct |
249 ms |
100772 KB |
partial |
71 |
Partially correct |
245 ms |
95012 KB |
partial |
72 |
Partially correct |
252 ms |
95004 KB |
partial |
73 |
Correct |
466 ms |
95264 KB |
ok |
74 |
Correct |
459 ms |
95056 KB |
ok |
75 |
Partially correct |
250 ms |
95020 KB |
partial |
76 |
Partially correct |
283 ms |
112008 KB |
partial |
77 |
Partially correct |
264 ms |
112876 KB |
partial |
78 |
Partially correct |
249 ms |
101024 KB |
partial |
79 |
Partially correct |
254 ms |
97136 KB |
partial |
80 |
Partially correct |
252 ms |
96964 KB |
partial |
81 |
Partially correct |
251 ms |
95948 KB |
partial |
82 |
Partially correct |
251 ms |
96964 KB |
partial |
83 |
Partially correct |
261 ms |
103616 KB |
partial |
84 |
Partially correct |
249 ms |
94804 KB |
partial |
85 |
Partially correct |
264 ms |
95024 KB |
partial |
86 |
Partially correct |
254 ms |
95008 KB |
partial |
87 |
Partially correct |
250 ms |
94804 KB |
partial |
88 |
Partially correct |
262 ms |
95024 KB |
partial |
89 |
Partially correct |
251 ms |
95060 KB |
partial |
90 |
Partially correct |
250 ms |
95060 KB |
partial |
91 |
Partially correct |
248 ms |
95316 KB |
partial |
92 |
Partially correct |
269 ms |
99724 KB |
partial |
93 |
Partially correct |
257 ms |
99864 KB |
partial |
94 |
Partially correct |
255 ms |
100800 KB |
partial |
95 |
Partially correct |
256 ms |
101316 KB |
partial |
96 |
Partially correct |
259 ms |
99468 KB |
partial |
97 |
Partially correct |
250 ms |
100036 KB |
partial |
98 |
Partially correct |
251 ms |
97224 KB |
partial |
99 |
Partially correct |
273 ms |
100036 KB |
partial |
100 |
Partially correct |
246 ms |
95056 KB |
partial |
101 |
Partially correct |
255 ms |
95004 KB |
partial |
102 |
Partially correct |
250 ms |
95060 KB |
partial |
103 |
Partially correct |
246 ms |
95056 KB |
partial |
104 |
Partially correct |
252 ms |
95020 KB |
partial |
105 |
Partially correct |
245 ms |
95004 KB |
partial |
106 |
Partially correct |
245 ms |
95060 KB |
partial |
107 |
Partially correct |
249 ms |
95056 KB |
partial |
108 |
Partially correct |
267 ms |
112520 KB |
partial |
109 |
Partially correct |
261 ms |
113080 KB |
partial |