제출 #841152

#제출 시각아이디문제언어결과실행 시간메모리
841152Gurban축구 경기장 (IOI23_soccer)C++17
1.50 / 100
267 ms34068 KiB
#include "soccer.h" #include <bits/stdc++.h> using namespace std; int biggest_stadium(int N, std::vector<std::vector<int>> F) { vector<vector<bool>>up(N,vector<bool>(N,0)); vector<vector<bool>>dw(N,vector<bool>(N,0)); vector<vector<bool>>lf(N,vector<bool>(N,0)); vector<vector<bool>>rg(N,vector<bool>(N,0)); int ans = 0; for(int i = 0;i < N;i++){ for(int j = 0;j < N;j++){ if(!F[i][j]){ up[i][j] = lf[i][j] = 1; ans++; } else { if(i > 0) up[i][j] = up[i-1][j]; if(j > 0) lf[i][j] = lf[i][j-1]; } } } for(int i = N-1;i >= 0;i--){ for(int j = N-1;j >= 0;j--){ if(!F[i][j]) dw[i][j] = rg[i][j] = 1; else { if(i < N-1) dw[i][j] = dw[i + 1][j]; if(j < N-1) rg[i][j] = rg[i][j + 1]; } } } for(int i = 0;i < N;i++){ for(int j = 0;j < N;j++){ if(F[i][j] == 1){ if(lf[i][j] and rg[i][j]) return -1; if(up[i][j] and dw[i][j]) return -1; } } } return ans; }
#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...