Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Kikii
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-11 10:10:19
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
int n,k;
cin >> n >> k;
vector<vector<char>> grid(n, vector<char> (k));
vector<vector<bool>> vis(n, vector<bool> (k,false));
for(int i = 0; i < n; i ++){
for(int j = 0; j < k; j ++){
cin >> grid[i][j];
if (grid[i][j] == '0'){
vis[i][j] = true;
}
}
}
int ma = 0;
int dr[] = {-1, 1, 0, 0};
int dc[] = {0, 0, -1, 1};
for(int i = 0; i < n; i ++){
for(int j = 0; j < k; j ++){
if (vis[i][j] == false){
int idx = 0;
queue<pair<int, int>> q;
q.push({i, j});
vis[i][j] = true;
while(!q.empty()){
pair<int, int> curr = q.front();
q.pop();
idx++;
for(int d = 0; d < 4; d++){
int ni = curr.first + dr[d];
int nj = curr.second + dc[d];
if(ni >= 0 && ni < n && nj >= 0 && nj < k && !vis[ni][nj]){
vis[ni][nj] = true;
q.push({ni, nj});
}
}
}
if (idx > ma){
ma = idx;
}
}
}
}
cout << ma;
}