#include <bits/stdc++.h>
#include "soccer.h"
using namespace std;
const int nmax = 2e3;
int n;
int a[nmax + 5][nmax + 5];
int aux[nmax + 5][nmax + 5];
int st[nmax + 5], dr[nmax + 5];
int Minst[nmax + 5], Maxdr[nmax + 5];
bool verif()
{
for(int i=0; i<=n; i++)
{
st[i] = n + 1;
dr[i] = 0;
}
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
if(a[i][j]==0 && a[i][j - 1]==1)
{
if(st[i]!=n+1)
{
return false;
}
st[i] = j;
}
if(a[i][j]==0)
{
dr[i] = j;
}
}
}
Minst[0] = n + 1;
for(int i=1;i<=n;i++)
{
Minst[i] = min(Minst[i - 1], st[i]);
Maxdr[i] = max(Maxdr[i - 1], dr[i]);
}
bool desc = false, start = false;
stack<int> stl, str;
for(int i=1; i<=n; i++)
{
if(st[i]!=n+1 && st[i - 1]==n+1 && start)
{
return false;
}
if(st[i]!=n+1)
{
start = true;
if(st[i - 1]!=n+1 && st[i] < st[i - 1] && desc)
{
return false;
}
if(st[i - 1]!=n+1 && st[i] > st[i - 1])
{
desc = true;
}
if(dr[i - 1] && dr[i] > dr[i - 1] && desc)
{
return false;
}
if(dr[i - 1] && dr[i] < dr[i - 1])
{
desc = true;
}
int u_st = 0, u_dr = 0;
while(!stl.empty() && st[i] >= st[stl.top()])
{
stl.pop();
}
if(stl.empty())
{
u_st = 0;
}
else
{
u_st = stl.top();
}
stl.push(i);
while(!str.empty() && dr[i] <= dr[str.top()])
{
str.pop();
}
if(str.empty())
{
u_dr = 0;
}
else
{
u_dr = str.top();
}
str.push(i);
if(Minst[u_dr] < st[i])
{
return false;
}
if(Maxdr[u_st] > dr[i])
{
return false;
}
}
}
return true;
}
int solve1()
{
int x = 0, y = 0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(a[i][j])
{
x = i, y = j;
}
}
}
int Max = 0;
Max = max(Max, n * n - x * y);
Max = max(Max, n * n - x * (n - y + 1));
Max = max(Max, n * n - (n - x + 1) * y);
Max = max(Max, n * n - (n - x + 1) * (n - y + 1));
return Max;
}
int solve2()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
aux[i][j] = a[i][j];
}
}
int rez = 0;
for(int mask=0;mask<(1<<(n*n));mask++)
{
int cnt = 0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
a[i][j] = 1;
int bit = (i - 1) * n + (j - 1);
if((mask & (1<<bit)) != 0 && !aux[i][j])
{
a[i][j] = 0;
++cnt;
}
}
}
if(verif())
{
rez = max(rez, cnt);
}
}
return rez;
}
int biggest_stadium(int N, std::vector<std::vector<int>> F)
{
n = N;
int nre = 0;
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
a[i][j] = F[i - 1][j - 1];
nre += (1 - a[i][j]);
}
}
for(int i=0; i<=n; i++)
{
a[i][0] = a[0][i] = a[i][n + 1] = a[n + 1][i] = 1;
}
bool ok = verif();
if(ok)
{
return nre;
}
if(nre==n*n-1)
{
return solve1();
}
else if(n<=3)
{
return solve2();
}
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
2392 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
2396 KB |
ok |
2 |
Correct |
0 ms |
2396 KB |
ok |
3 |
Correct |
1 ms |
2396 KB |
ok |
4 |
Correct |
1 ms |
2396 KB |
ok |
5 |
Correct |
0 ms |
2396 KB |
ok |
6 |
Correct |
0 ms |
2396 KB |
ok |
7 |
Correct |
1 ms |
2468 KB |
ok |
8 |
Correct |
17 ms |
8540 KB |
ok |
9 |
Correct |
255 ms |
48672 KB |
ok |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
2396 KB |
ok |
2 |
Correct |
0 ms |
2396 KB |
ok |
3 |
Correct |
1 ms |
2396 KB |
ok |
4 |
Correct |
0 ms |
2396 KB |
ok |
5 |
Correct |
1 ms |
2396 KB |
ok |
6 |
Correct |
1 ms |
2396 KB |
ok |
7 |
Correct |
1 ms |
2396 KB |
ok |
8 |
Correct |
0 ms |
2396 KB |
ok |
9 |
Correct |
1 ms |
2396 KB |
ok |
10 |
Correct |
1 ms |
2396 KB |
ok |
11 |
Correct |
1 ms |
2396 KB |
ok |
12 |
Correct |
1 ms |
2396 KB |
ok |
13 |
Correct |
0 ms |
2396 KB |
ok |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
2392 KB |
partial |
2 |
Correct |
1 ms |
2396 KB |
ok |
3 |
Correct |
0 ms |
2396 KB |
ok |
4 |
Correct |
1 ms |
2396 KB |
ok |
5 |
Correct |
0 ms |
2396 KB |
ok |
6 |
Correct |
1 ms |
2396 KB |
ok |
7 |
Correct |
1 ms |
2396 KB |
ok |
8 |
Correct |
1 ms |
2396 KB |
ok |
9 |
Correct |
0 ms |
2396 KB |
ok |
10 |
Correct |
1 ms |
2396 KB |
ok |
11 |
Correct |
1 ms |
2396 KB |
ok |
12 |
Correct |
1 ms |
2396 KB |
ok |
13 |
Correct |
1 ms |
2396 KB |
ok |
14 |
Correct |
0 ms |
2396 KB |
ok |
15 |
Partially correct |
1 ms |
2396 KB |
partial |
16 |
Partially correct |
0 ms |
2396 KB |
partial |
17 |
Partially correct |
1 ms |
2396 KB |
partial |
18 |
Partially correct |
0 ms |
2396 KB |
partial |
19 |
Partially correct |
1 ms |
2396 KB |
partial |
20 |
Correct |
0 ms |
2396 KB |
ok |
21 |
Correct |
1 ms |
2396 KB |
ok |
22 |
Partially correct |
0 ms |
2396 KB |
partial |
23 |
Partially correct |
1 ms |
2396 KB |
partial |
24 |
Partially correct |
0 ms |
2396 KB |
partial |
25 |
Partially correct |
1 ms |
2648 KB |
partial |
26 |
Partially correct |
1 ms |
2396 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
2392 KB |
partial |
2 |
Correct |
1 ms |
2396 KB |
ok |
3 |
Correct |
0 ms |
2396 KB |
ok |
4 |
Correct |
1 ms |
2396 KB |
ok |
5 |
Correct |
1 ms |
2396 KB |
ok |
6 |
Correct |
1 ms |
2396 KB |
ok |
7 |
Correct |
0 ms |
2396 KB |
ok |
8 |
Correct |
1 ms |
2396 KB |
ok |
9 |
Correct |
1 ms |
2396 KB |
ok |
10 |
Correct |
1 ms |
2396 KB |
ok |
11 |
Correct |
0 ms |
2396 KB |
ok |
12 |
Correct |
1 ms |
2396 KB |
ok |
13 |
Correct |
1 ms |
2396 KB |
ok |
14 |
Correct |
1 ms |
2396 KB |
ok |
15 |
Correct |
1 ms |
2396 KB |
ok |
16 |
Correct |
0 ms |
2396 KB |
ok |
17 |
Partially correct |
1 ms |
2396 KB |
partial |
18 |
Partially correct |
0 ms |
2396 KB |
partial |
19 |
Partially correct |
1 ms |
2396 KB |
partial |
20 |
Partially correct |
0 ms |
2396 KB |
partial |
21 |
Partially correct |
1 ms |
2396 KB |
partial |
22 |
Correct |
0 ms |
2396 KB |
ok |
23 |
Correct |
1 ms |
2396 KB |
ok |
24 |
Partially correct |
0 ms |
2396 KB |
partial |
25 |
Partially correct |
1 ms |
2396 KB |
partial |
26 |
Partially correct |
0 ms |
2396 KB |
partial |
27 |
Partially correct |
1 ms |
2648 KB |
partial |
28 |
Partially correct |
1 ms |
2396 KB |
partial |
29 |
Partially correct |
0 ms |
2396 KB |
partial |
30 |
Partially correct |
1 ms |
2396 KB |
partial |
31 |
Partially correct |
1 ms |
2396 KB |
partial |
32 |
Partially correct |
0 ms |
2396 KB |
partial |
33 |
Partially correct |
0 ms |
2396 KB |
partial |
34 |
Correct |
1 ms |
2392 KB |
ok |
35 |
Correct |
1 ms |
2396 KB |
ok |
36 |
Partially correct |
1 ms |
2396 KB |
partial |
37 |
Partially correct |
1 ms |
2396 KB |
partial |
38 |
Partially correct |
1 ms |
2396 KB |
partial |
39 |
Partially correct |
1 ms |
2392 KB |
partial |
40 |
Partially correct |
1 ms |
2396 KB |
partial |
41 |
Partially correct |
0 ms |
2396 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
2392 KB |
partial |
2 |
Correct |
1 ms |
2396 KB |
ok |
3 |
Correct |
0 ms |
2396 KB |
ok |
4 |
Correct |
1 ms |
2396 KB |
ok |
5 |
Correct |
1 ms |
2396 KB |
ok |
6 |
Correct |
1 ms |
2396 KB |
ok |
7 |
Correct |
0 ms |
2396 KB |
ok |
8 |
Correct |
1 ms |
2396 KB |
ok |
9 |
Correct |
1 ms |
2396 KB |
ok |
10 |
Correct |
1 ms |
2396 KB |
ok |
11 |
Correct |
0 ms |
2396 KB |
ok |
12 |
Correct |
1 ms |
2396 KB |
ok |
13 |
Correct |
1 ms |
2396 KB |
ok |
14 |
Correct |
1 ms |
2396 KB |
ok |
15 |
Correct |
1 ms |
2396 KB |
ok |
16 |
Correct |
0 ms |
2396 KB |
ok |
17 |
Partially correct |
1 ms |
2396 KB |
partial |
18 |
Partially correct |
0 ms |
2396 KB |
partial |
19 |
Partially correct |
1 ms |
2396 KB |
partial |
20 |
Partially correct |
0 ms |
2396 KB |
partial |
21 |
Partially correct |
1 ms |
2396 KB |
partial |
22 |
Correct |
0 ms |
2396 KB |
ok |
23 |
Correct |
1 ms |
2396 KB |
ok |
24 |
Partially correct |
0 ms |
2396 KB |
partial |
25 |
Partially correct |
1 ms |
2396 KB |
partial |
26 |
Partially correct |
0 ms |
2396 KB |
partial |
27 |
Partially correct |
1 ms |
2648 KB |
partial |
28 |
Partially correct |
1 ms |
2396 KB |
partial |
29 |
Partially correct |
0 ms |
2396 KB |
partial |
30 |
Partially correct |
1 ms |
2396 KB |
partial |
31 |
Partially correct |
1 ms |
2396 KB |
partial |
32 |
Partially correct |
0 ms |
2396 KB |
partial |
33 |
Partially correct |
0 ms |
2396 KB |
partial |
34 |
Correct |
1 ms |
2392 KB |
ok |
35 |
Correct |
1 ms |
2396 KB |
ok |
36 |
Partially correct |
1 ms |
2396 KB |
partial |
37 |
Partially correct |
1 ms |
2396 KB |
partial |
38 |
Partially correct |
1 ms |
2396 KB |
partial |
39 |
Partially correct |
1 ms |
2392 KB |
partial |
40 |
Partially correct |
1 ms |
2396 KB |
partial |
41 |
Partially correct |
0 ms |
2396 KB |
partial |
42 |
Partially correct |
16 ms |
8540 KB |
partial |
43 |
Partially correct |
17 ms |
8580 KB |
partial |
44 |
Partially correct |
16 ms |
8536 KB |
partial |
45 |
Partially correct |
16 ms |
8540 KB |
partial |
46 |
Partially correct |
17 ms |
8540 KB |
partial |
47 |
Partially correct |
16 ms |
8540 KB |
partial |
48 |
Correct |
16 ms |
8540 KB |
ok |
49 |
Partially correct |
16 ms |
8536 KB |
partial |
50 |
Partially correct |
17 ms |
8536 KB |
partial |
51 |
Partially correct |
16 ms |
8540 KB |
partial |
52 |
Partially correct |
19 ms |
8540 KB |
partial |
53 |
Partially correct |
17 ms |
8540 KB |
partial |
54 |
Partially correct |
16 ms |
8540 KB |
partial |
55 |
Partially correct |
16 ms |
8356 KB |
partial |
56 |
Partially correct |
17 ms |
8536 KB |
partial |
57 |
Partially correct |
16 ms |
8540 KB |
partial |
58 |
Partially correct |
17 ms |
8536 KB |
partial |
59 |
Partially correct |
16 ms |
8364 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
1 ms |
2392 KB |
partial |
2 |
Correct |
1 ms |
2396 KB |
ok |
3 |
Correct |
0 ms |
2396 KB |
ok |
4 |
Correct |
1 ms |
2396 KB |
ok |
5 |
Correct |
1 ms |
2396 KB |
ok |
6 |
Correct |
0 ms |
2396 KB |
ok |
7 |
Correct |
0 ms |
2396 KB |
ok |
8 |
Correct |
1 ms |
2468 KB |
ok |
9 |
Correct |
17 ms |
8540 KB |
ok |
10 |
Correct |
255 ms |
48672 KB |
ok |
11 |
Correct |
1 ms |
2396 KB |
ok |
12 |
Correct |
0 ms |
2396 KB |
ok |
13 |
Correct |
1 ms |
2396 KB |
ok |
14 |
Correct |
1 ms |
2396 KB |
ok |
15 |
Correct |
1 ms |
2396 KB |
ok |
16 |
Correct |
0 ms |
2396 KB |
ok |
17 |
Correct |
1 ms |
2396 KB |
ok |
18 |
Correct |
1 ms |
2396 KB |
ok |
19 |
Correct |
1 ms |
2396 KB |
ok |
20 |
Correct |
1 ms |
2396 KB |
ok |
21 |
Correct |
0 ms |
2396 KB |
ok |
22 |
Partially correct |
1 ms |
2396 KB |
partial |
23 |
Partially correct |
0 ms |
2396 KB |
partial |
24 |
Partially correct |
1 ms |
2396 KB |
partial |
25 |
Partially correct |
0 ms |
2396 KB |
partial |
26 |
Partially correct |
1 ms |
2396 KB |
partial |
27 |
Correct |
0 ms |
2396 KB |
ok |
28 |
Correct |
1 ms |
2396 KB |
ok |
29 |
Partially correct |
0 ms |
2396 KB |
partial |
30 |
Partially correct |
1 ms |
2396 KB |
partial |
31 |
Partially correct |
0 ms |
2396 KB |
partial |
32 |
Partially correct |
1 ms |
2648 KB |
partial |
33 |
Partially correct |
1 ms |
2396 KB |
partial |
34 |
Partially correct |
0 ms |
2396 KB |
partial |
35 |
Partially correct |
1 ms |
2396 KB |
partial |
36 |
Partially correct |
1 ms |
2396 KB |
partial |
37 |
Partially correct |
0 ms |
2396 KB |
partial |
38 |
Partially correct |
0 ms |
2396 KB |
partial |
39 |
Correct |
1 ms |
2392 KB |
ok |
40 |
Correct |
1 ms |
2396 KB |
ok |
41 |
Partially correct |
1 ms |
2396 KB |
partial |
42 |
Partially correct |
1 ms |
2396 KB |
partial |
43 |
Partially correct |
1 ms |
2396 KB |
partial |
44 |
Partially correct |
1 ms |
2392 KB |
partial |
45 |
Partially correct |
1 ms |
2396 KB |
partial |
46 |
Partially correct |
0 ms |
2396 KB |
partial |
47 |
Partially correct |
16 ms |
8540 KB |
partial |
48 |
Partially correct |
17 ms |
8580 KB |
partial |
49 |
Partially correct |
16 ms |
8536 KB |
partial |
50 |
Partially correct |
16 ms |
8540 KB |
partial |
51 |
Partially correct |
17 ms |
8540 KB |
partial |
52 |
Partially correct |
16 ms |
8540 KB |
partial |
53 |
Correct |
16 ms |
8540 KB |
ok |
54 |
Partially correct |
16 ms |
8536 KB |
partial |
55 |
Partially correct |
17 ms |
8536 KB |
partial |
56 |
Partially correct |
16 ms |
8540 KB |
partial |
57 |
Partially correct |
19 ms |
8540 KB |
partial |
58 |
Partially correct |
17 ms |
8540 KB |
partial |
59 |
Partially correct |
16 ms |
8540 KB |
partial |
60 |
Partially correct |
16 ms |
8356 KB |
partial |
61 |
Partially correct |
17 ms |
8536 KB |
partial |
62 |
Partially correct |
16 ms |
8540 KB |
partial |
63 |
Partially correct |
17 ms |
8536 KB |
partial |
64 |
Partially correct |
16 ms |
8364 KB |
partial |
65 |
Partially correct |
248 ms |
48796 KB |
partial |
66 |
Partially correct |
256 ms |
48676 KB |
partial |
67 |
Partially correct |
251 ms |
48672 KB |
partial |
68 |
Partially correct |
251 ms |
48676 KB |
partial |
69 |
Partially correct |
261 ms |
48680 KB |
partial |
70 |
Partially correct |
289 ms |
48676 KB |
partial |
71 |
Partially correct |
247 ms |
48696 KB |
partial |
72 |
Partially correct |
252 ms |
48672 KB |
partial |
73 |
Correct |
250 ms |
48676 KB |
ok |
74 |
Correct |
277 ms |
48672 KB |
ok |
75 |
Partially correct |
256 ms |
48720 KB |
partial |
76 |
Partially correct |
248 ms |
48676 KB |
partial |
77 |
Partially correct |
267 ms |
48692 KB |
partial |
78 |
Partially correct |
294 ms |
48676 KB |
partial |
79 |
Partially correct |
262 ms |
48676 KB |
partial |
80 |
Partially correct |
268 ms |
48672 KB |
partial |
81 |
Partially correct |
253 ms |
48676 KB |
partial |
82 |
Partially correct |
289 ms |
48668 KB |
partial |
83 |
Partially correct |
254 ms |
48720 KB |
partial |
84 |
Partially correct |
265 ms |
48692 KB |
partial |
85 |
Partially correct |
260 ms |
48672 KB |
partial |
86 |
Partially correct |
287 ms |
48672 KB |
partial |
87 |
Partially correct |
280 ms |
48792 KB |
partial |
88 |
Partially correct |
259 ms |
48676 KB |
partial |
89 |
Partially correct |
257 ms |
48672 KB |
partial |
90 |
Partially correct |
265 ms |
48676 KB |
partial |
91 |
Partially correct |
252 ms |
48676 KB |
partial |
92 |
Partially correct |
252 ms |
48676 KB |
partial |
93 |
Partially correct |
248 ms |
48672 KB |
partial |
94 |
Partially correct |
257 ms |
48668 KB |
partial |
95 |
Partially correct |
252 ms |
48720 KB |
partial |
96 |
Partially correct |
248 ms |
48724 KB |
partial |
97 |
Partially correct |
254 ms |
48724 KB |
partial |
98 |
Partially correct |
254 ms |
48672 KB |
partial |
99 |
Partially correct |
247 ms |
48672 KB |
partial |
100 |
Partially correct |
249 ms |
48720 KB |
partial |
101 |
Partially correct |
246 ms |
49048 KB |
partial |
102 |
Partially correct |
247 ms |
48724 KB |
partial |
103 |
Partially correct |
255 ms |
48676 KB |
partial |
104 |
Partially correct |
251 ms |
48724 KB |
partial |
105 |
Partially correct |
248 ms |
48684 KB |
partial |
106 |
Partially correct |
240 ms |
48676 KB |
partial |
107 |
Partially correct |
246 ms |
48680 KB |
partial |
108 |
Partially correct |
263 ms |
48680 KB |
partial |
109 |
Partially correct |
262 ms |
48676 KB |
partial |