Submission #844969

#TimeUsernameProblemLanguageResultExecution timeMemory
844969JoksimKaktus축구 경기장 (IOI23_soccer)C++17
0 / 100
1 ms348 KiB
#include "soccer.h" #include "bits/stdc++.h" using namespace std; int biggest_stadium(int N, std::vector<std::vector<int>> F) { int n,s,e,w; n = N; s = 0; w = N; e = 0; int num = 0; for(int i = 0; i < N;i++){ int con = 0; for(int j = 0;j < N;j++){ if(F[i][j] == 1){ num++; if(con == 1){ con = 2; } }else{ n = min(n,i); s = i; if(con == 0){ con = 1; }else if(con == 2){ return 1; } } } } for(int j = 0; j < N;j++){ int con = 0; for(int i = 0;i < N;i++){ if(F[i][j] == 1){ if(con == 1){ con = 2; } }else{ w = min(w,j); e = j; if(con == 0){ con = 1; }else if(con == 2){ return 1; } } } } for(int j = 0;j < N;j++){ if(F[n][j] == 0){ for(int i = 0;i < N;i++){ if(F[s][i] == 0){ bool way1 = true; bool way1m = true; bool way2 = true; bool way2m = true; for(int k = j; k <= i;k++){ if(F[n][k] == 1){ way1 = false; break; } } for(int k = j; k >= i;k--){ if(F[n][k] == 1){ way1m = false; break; } } if(way1 || (way1m && (j > i))){ for(int k = n;k <= s;k++){ if(F[k][i] == 1){ way1 = false; break; } } for(int k = n;k >= s;k--){ if(F[k][i] == 1){ way1m = false; break; } } } if(j < i){ way1m = false; } if(!way1 && !way1m){ for(int k = n;k <= s;k++){ if(F[k][j] == 1){ way2 = false; break; } } for(int k = n;k >= s;k--){ if(F[k][j] == 1){ way2m = false; break; } } if(way2 || (way2m && (j > i))){ for(int k = j; k <= i;k++){ if(F[s][k] == 1){ way2 = false; break; } } for(int k = j; k >= i;k--){ if(F[s][k] == 1){ way2m = false; break; } } if(j < i){ way2m = false; } if(!way2 && !way2m){ return 1; } }else{ return 1; } } } } } } for(int j = 0;j < N;j++){ if(F[j][w] == 0){ for(int i = 0;i < N;i++){ if(F[i][e] == 0){ bool way1 = true; bool way1m = true; bool way2 = true; bool way2m = true; for(int k = j; k <= i;k++){ if(F[k][w] == 1){ way1 = false; break; } } for(int k = j; k >= i;k--){ if(F[k][w] == 1){ way1m = false; break; } } if(way1 || (way1m && (j > i))){ for(int k = w;k <= e;k++){ if(F[k][i] == 1){ way1 = false; break; } } for(int k = w;k >= e;k--){ if(F[k][i] == 1){ way1m = false; break; } } }if(j < i){ way1m = false; } if(!way1 && !way1m){ for(int k = w;k <= e;k++){ if(F[k][j] == 1){ way2 = false; break; } } for(int k = w;k >= e;k--){ if(F[k][j] == 1){ way2m = false; break; } } if(way2 || (way2m && (j > i))){ for(int k = j; k <= i;k++){ if(F[k][e] == 1){ way2 = false; break; } } for(int k = j; k >= i;k--){ if(F[k][e] == 1){ way2m = false; break; } } if(j < i){ way2m = false; } if(!way2 && !way2m){ return 1; } }else{ return 1; } } } } } } cout << n << " " << s << " " << w << " " << e << "\n"; return N*N-num; }
#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...