Submission #1227110

#TimeUsernameProblemLanguageResultExecution timeMemory
1227110GabrielSoccer Stadium (IOI23_soccer)C++20
1.50 / 100
191 ms31772 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...