#include <bits/stdc++.h>
#include "soccer.h"
using namespace std;
typedef long long ll;
int biggest_stadium(int n, vector<vector<int>> f) {
vector<pair<ll, ll>> v(n, {-1, -1}), h(n, {-1, -1});
ll num = 0;
bool done = false;
pair<ll, ll> prev = {-1, -1}, mn = {-1, -1};
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (!f[i][j]) {
if (done)
return 0;
if (v[i].first == -1) v[i].first = j;
if (j - v[i].second > 1 && v[i].second != -1)
return 0;
v[i].second = j;
num++;
}
}
if (v[i].first == -1 && num > 0) done = true;
if (prev.first == -1) {
prev = v[i];
mn = v[i];
continue;
}
if (v[i].first == -1) continue;
if (v[i].first > mn.first && v[i].second > mn.second)
return 0;
if (v[i].first < mn.first && v[i].second < mn.second)
return 0;
mn.first = max(mn.first, h[i].first);
mn.second = min(mn.second, h[i].second);
if (v[i].first > prev.first && v[i].second > prev.second)
return 0;
if (v[i].first < prev.first && v[i].second < prev.second)
return 0;
prev = v[i];
}
num = 0;
done = false;
prev = {-1, -1};
mn = {-1, -1};
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (!f[j][i]) {
if (done)
return 0;
if (h[i].first == -1) h[i].first = j;
if (j - h[i].second > 1 && h[i].second != -1)
return 0;
h[i].second = j;
num++;
}
}
if (h[i].first == -1 && num > 0) done = true;
if (prev.first == -1) {
prev = h[i];
mn = h[i];
continue;
}
if (h[i].first == -1) continue;
if (h[i].first > mn.first && h[i].second > mn.second)
return 0;
if (h[i].first < mn.first && h[i].second < mn.second)
return 0;
mn.first = max(mn.first, h[i].first);
mn.second = min(mn.second, h[i].second);
if (h[i].first > prev.first && h[i].second > prev.second)
return 0;
if (h[i].first < prev.first && h[i].second < prev.second)
return 0;
prev = h[i];
}
for (int x1 = 0; x1 < n; x1++) {
for (int y1 = 0; y1 < n; y1++) {
if (f[x1][y1]) continue;
for (int x2 = 0; x2 < n; x2++) {
for (int y2 = 0; y2 < n; y2++) {
if (f[x2][y2]) continue;
bool poss = false;
if (!f[x1][y2]) {
bool t = true;
poss |= t;
}
if (!f[x2][y1]) {
bool t = true;
poss |= t;
}
/*if (!poss)
return 0;*/
}
}
}
}
return num;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
0 ms |
344 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
ok |
2 |
Incorrect |
0 ms |
348 KB |
wrong |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
ok |
2 |
Incorrect |
0 ms |
348 KB |
wrong |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
0 ms |
344 KB |
partial |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Incorrect |
0 ms |
348 KB |
wrong |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
0 ms |
344 KB |
partial |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Incorrect |
0 ms |
348 KB |
wrong |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
0 ms |
344 KB |
partial |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Incorrect |
0 ms |
348 KB |
wrong |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
0 ms |
344 KB |
partial |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Incorrect |
0 ms |
348 KB |
wrong |
4 |
Halted |
0 ms |
0 KB |
- |