#include "soccer.h"
#include <bits/stdc++.h>
using namespace std;
int arr[2001][2001],vis[2001][2001],n;
bool valid(int i,int j){
if(i>=n||j>=n||i<0||j<0||arr[i][j]==1||vis[i][j]==1) return 0;
return 1;
}
void dfs(int i,int j){
vis[i][j]=1;
if(valid(i+1,j)==1) dfs(i+1,j);
if(valid(i-1,j)==1) dfs(i-1,j);
if(valid(i,j+1)==1) dfs(i,j+1);
if(valid(i,j-1)==1) dfs(i,j-1);
return;
}
int biggest_stadium(int N, std::vector<std::vector<int>> F)
{
n=N;
int cnt=0,siz=0;
vector <array<int,2>> v;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++) arr[i][j]=F[i][j];
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(vis[i][j]==0){
cnt++;
dfs(i,j);
}
if(arr[i][j]==1) v.push_back({i,j});
else siz++;
}
}
if(cnt>1) return -1;
for(auto [i1,j1]:v){
for(auto [i2,j2]:v){
if(arr[i1][j1]!=1||arr[i2][j1]!=1) return -1;
}
}
return siz;
}
# | 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... |