제출 #1213835

#제출 시각아이디문제언어결과실행 시간메모리
1213835trimkus축구 경기장 (IOI23_soccer)C++20
1.50 / 100
501 ms408100 KiB
#include "soccer.h" #include <bits/stdc++.h> using namespace std; int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1}; int biggest_stadium(int N, std::vector<std::vector<int>> F) { vector<vector<bool>> vis(N, vector<bool>(N)); int cnt = 0, res = 0; auto dfs = [&](auto& dfs, int i, int j) -> void { vis[i][j] = 1; for (int k = 0; k < 4; ++k) { int ni = i + dx[k]; int nj = j + dy[k]; if (max(ni, nj) >= N || min(ni, nj) < 0 || vis[ni][nj] || F[ni][nj] == 1) continue; dfs(dfs, ni, nj); } }; for (int i = 0; i < N; ++i) { for (int j = 0; j < N; ++j) { if (!vis[i][j] && F[i][j] == 0) { dfs(dfs, i, j); cnt += 1; } res += (F[i][j] == 0); } } if (cnt > 1) return 0; for (int i = 0; i < N; ++i) { for (int j = 0; j < N; ++j) { if (F[i][j] == 1) { if (i + 1 < N && i - 1 >= 0) { if (F[i + 1][j] + F[i - 1][j] == 0) return 0; } if (j + 1 < N && j - 1 >= 0) { if (F[i][j - 1] + F[i][j + 1] == 0) return 0; } } } } return res; }
#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...