#include "soccer.h"
#include "bits/stdc++.h"
using namespace std;
int biggest_stadium(int n, vector< vector<int> > fulbo){
vector< vector<int> > Distancias_arriba, Distancias_abajo, Distancias_izquierda, Distancias_derecha;
pair<int, int> Esquina_0_0, Esquina_0_n, Esquina_n_0, Esquina_n_n;
if(fulbo[0][0] == -0) Esquina_0_0 = {-1, -1};
else {
int i = 0;
while(i < n and fulbo[i][0] == 1) i++;
i--;
int j = 0;
while(j < n and fulbo[0][j] == 1) j++;
j--;
Esquina_0_0 = {i, j};
}
if(fulbo[0][n - 1] == -0) Esquina_0_n = {-1, n};
else {
int i = 0;
while(i < n and fulbo[i][n - 1] == 1) i++;
i--;
int j = n - 1;
while(j > -1 and fulbo[0][j] == 1) j--;
j++;
Esquina_0_n = {i, j};
}
if(fulbo[n - 1][0] == -0) Esquina_n_0 = {n, -1};
else {
int i = n - 1;
while(i > -1 and fulbo[i][0] == 1) i--;
i++;
int j = 0;
while(j < n and fulbo[n - 1][j] == 1) j++;
j--;
Esquina_n_0 = {i, j};
}
if(fulbo[n - 1][n - 1] == -0) Esquina_n_n = {n, n};
else {
int i = n - 1;
while(i > -1 and fulbo[i][n - 1] == 1) i--;
i++;
int j = n - 1;
while(j > -1 and fulbo[n - 1][j] == 1) j--;
j++;
Esquina_n_n = {i, j};
}
int r = 0;
/*cerr<<"Esquina superior izquierda. "<<Esquina_0_0.first<<" "<<Esquina_0_0.second<<"\n";
cerr<<"Esquina superior derecha. "<<Esquina_0_n.first<<" "<<Esquina_0_n.second<<"\n";
cerr<<"Esquina inferior izquierda. "<<Esquina_n_0.first<<" "<<Esquina_n_0.second<<"\n";
cerr<<"Esquina inferior derecha. "<<Esquina_n_n.first<<" "<<Esquina_n_n.second<<"\n";*/
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
//cerr<<fulbo[i][j]<<" ";
int _Qu__est__pasando_ = fulbo[i][j];
if(((i > Esquina_0_0.first or j > Esquina_0_0.second) and (i > Esquina_0_n.first or j < Esquina_0_n.second) and (i < Esquina_n_0.first or j > Esquina_n_0.second) and (i < Esquina_n_n.first or j < Esquina_n_n.second)) and _Qu__est__pasando_ == 1){
//cerr<<"Afuera y 1. "<<i<<" "<<j<<" "<<fulbo[i][j]<<"\n";
return 0;
}
/*if(((i <= Esquina_0_0.first and j <= Esquina_0_0.second) or (i <= Esquina_0_n.first and j >= Esquina_0_n.second) or (i >= Esquina_n_0.first and j <= Esquina_n_0.second) or (i >= Esquina_n_n.first and j >= Esquina_n_n.second)) and _Qu__est__pasando_ == 0){
cerr<<"Adentro y 0. "<<i<<" "<<j<<" "<<fulbo[i][j]<<"\n";
return 0;
}*/
if(fulbo[i][j] == 0) r++;
}
//cerr<<"\n";
}
if(Esquina_0_0.first >= Esquina_n_n.first - 1 and Esquina_0_0.first < n - 1 and Esquina_n_n.first > 0) return 0;
if(Esquina_0_0.second >= Esquina_n_n.second - 1 and Esquina_0_0.second < n - 1 and Esquina_n_n.second > 0) return 0;
if(Esquina_n_0.first <= Esquina_0_n.first + 1 and Esquina_n_0.first > 0 and Esquina_0_n.first < n - 1) return 0;
if(Esquina_n_0.second >= Esquina_0_n.second - 1 and Esquina_n_0.second < n - 1 and Esquina_0_n.second > 0) return 0;
for(int i = 0; i < n; i++){
int Componentes = 0;
for(int j = 0; j < n; j++){
if((j == 0 and fulbo[i][j] == 0) or (j > 0 and fulbo[i][j - 1] == 1 and fulbo[i][j] == 0)) Componentes++;
}
if(Componentes > 1) return 0;
}
for(int i = 0; i < n; i++){
int Componentes = 0;
for(int j = 0; j < n; j++){
if((j == 0 and fulbo[j][i] == 0) or (j > 0 and fulbo[j - 1][i] == 1 and fulbo[j][i] == 0)) Componentes++;
}
if(Componentes > 1) return 0;
}
return r;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |