#include "soccer.h"
#include<bits/stdc++.h>
using namespace std;
const long long inf = 1e18 + 10;
const int inf1 = 1e9 + 10;
#define int long long
#define dbl long double
#define endl '\n'
#define sc second
#define fr first
#define mp make_pair
#define pb push_back
#define all(x) x.begin(), x.end()
mt19937_64 rng(chrono::system_clock::now().time_since_epoch().count());
const int maxn = -1;
int32_t biggest_stadium(int32_t n, std::vector<std::vector<int32_t>> F)
{
int ans = 1;
int ansqtd = 0;
{
vector<int> mnl(n),mxl(n),qtdl(n);
for(int i = 0; i < n; i++) {
mnl[i] = inf;
mxl[i] = -inf;
qtdl[i] = 0;
for(int j = 0; j < n; j++) {
if(F[i][j] == 0) {
ansqtd++;
qtdl[i]++;
mnl[i] = min(mnl[i],j);
mxl[i] = max(mxl[i],j);
}
}
}
int difmn = 0;
int difmx = 0;
// +1 -> increasing
// 0 -> equal
// -1 -> decreasing
for(int i = 0; i < n; i++) {
if(qtdl[i] != 0 and qtdl[i] != mxl[i]-mnl[i]+1) {
ans = 0;
}
int difmn1 = 0;
int difmx1 = 0;
if(i != 0) {
if(mnl[i] < mnl[i-1]) difmn1 = 1; // increasing
if(mnl[i] > mnl[i-1]) difmn1 = -1; // decreasing
if(mxl[i] > mxl[i-1]) difmx1 = 1; // increasing
if(mxl[i] < mxl[i-1]) difmx1 = -1; // decreasing
}
if(difmn == -1 and difmn1 == 1) {
ans = 0;
}
if(difmx == -1 and difmx1 == 1) {
ans = 0;
}
if(difmn1 == -1 and (difmx1 == 1 or difmx == 1)) {
ans = 0;
}
if(difmx1 == -1 and (difmn1 == 1 or difmn == 1)) {
ans = 0;
}
if(difmn1 != 0) difmn = 0;
if(difmx1 != 0) difmx = 0;
}
}
for(int i = 0; i < n ; i++) {
for(int j = 0; j < n; j++) {
if(i < j) swap(F[i][j],F[j][i]);
}
}
{
vector<int> mnl(n),mxl(n),qtdl(n);
for(int i = 0; i < n; i++) {
mnl[i] = inf;
mxl[i] = -inf;
qtdl[i] = 0;
for(int j = 0; j < n; j++) {
if(F[i][j] == 0) {
qtdl[i]++;
mnl[i] = min(mnl[i],j);
mxl[i] = max(mxl[i],j);
}
}
}
int difmn = 0;
int difmx = 0;
// +1 -> increasing
// 0 -> equal
// -1 -> decreasing
for(int i = 0; i < n; i++) {
if(qtdl[i] != 0 and qtdl[i] != mxl[i]-mnl[i]+1) {
ans = 0;
}
int difmn1 = 0;
int difmx1 = 0;
if(i != 0) {
if(mnl[i] < mnl[i-1]) difmn1 = 1; // increasing
if(mnl[i] > mnl[i-1]) difmn1 = -1; // decreasing
if(mxl[i] > mxl[i-1]) difmx1 = 1; // increasing
if(mxl[i] < mxl[i-1]) difmx1 = -1; // decreasing
}
if(difmn == -1 and difmn1 == 1) {
ans = 0;
}
if(difmx == -1 and difmx1 == 1) {
ans = 0;
}
if(difmn1 == -1 and (difmx1 == 1 or difmx == 1)) {
ans = 0;
}
if(difmx1 == -1 and (difmn1 == 1 or difmn == 1)) {
ans = 0;
}
if(difmn1 != 0) difmn = 0;
if(difmx1 != 0) difmx = 0;
}
}
if(ans) return ansqtd;
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
0 ms |
348 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
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 |
0 ms |
348 KB |
ok |
5 |
Correct |
0 ms |
348 KB |
ok |
6 |
Partially correct |
0 ms |
348 KB |
partial |
7 |
Partially correct |
1 ms |
348 KB |
partial |
8 |
Partially correct |
15 ms |
2700 KB |
partial |
9 |
Partially correct |
238 ms |
39764 KB |
partial |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
ok |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Partially correct |
0 ms |
344 KB |
partial |
4 |
Partially correct |
0 ms |
348 KB |
partial |
5 |
Partially correct |
0 ms |
348 KB |
partial |
6 |
Incorrect |
0 ms |
392 KB |
wrong |
7 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
0 ms |
348 KB |
partial |
2 |
Correct |
0 ms |
348 KB |
ok |
3 |
Correct |
0 ms |
348 KB |
ok |
4 |
Partially correct |
0 ms |
344 KB |
partial |
5 |
Partially correct |
0 ms |
348 KB |
partial |
6 |
Partially correct |
0 ms |
348 KB |
partial |
7 |
Incorrect |
0 ms |
392 KB |
wrong |
8 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
0 ms |
348 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 |
0 ms |
348 KB |
ok |
6 |
Partially correct |
0 ms |
344 KB |
partial |
7 |
Partially correct |
0 ms |
348 KB |
partial |
8 |
Partially correct |
0 ms |
348 KB |
partial |
9 |
Incorrect |
0 ms |
392 KB |
wrong |
10 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
0 ms |
348 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 |
0 ms |
348 KB |
ok |
6 |
Partially correct |
0 ms |
344 KB |
partial |
7 |
Partially correct |
0 ms |
348 KB |
partial |
8 |
Partially correct |
0 ms |
348 KB |
partial |
9 |
Incorrect |
0 ms |
392 KB |
wrong |
10 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
0 ms |
348 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 |
0 ms |
348 KB |
ok |
6 |
Correct |
0 ms |
348 KB |
ok |
7 |
Partially correct |
0 ms |
348 KB |
partial |
8 |
Partially correct |
1 ms |
348 KB |
partial |
9 |
Partially correct |
15 ms |
2700 KB |
partial |
10 |
Partially correct |
238 ms |
39764 KB |
partial |
11 |
Partially correct |
0 ms |
344 KB |
partial |
12 |
Partially correct |
0 ms |
348 KB |
partial |
13 |
Partially correct |
0 ms |
348 KB |
partial |
14 |
Incorrect |
0 ms |
392 KB |
wrong |
15 |
Halted |
0 ms |
0 KB |
- |