Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: sulinx
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.003 second
Submitted On: 2026-02-18 21:53:18
#include <bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n,m;
cin >> n >> m;
vector<string> grid(n);
for(int i = 0;i<n;i++) cin >> grid[i];
int dir[4][2] = {{1,0},{-1,0},{0,1},{0,-1}};
int maxarea = 0;
for(int i = 0;i<n;i++){
for(int j = 0;j<m;j++){
if(grid[i][j] == '1'){
int area = 0;
queue<pair<int,int>> q;
q.push({i,j});
grid[i][j] = '0';
while(!q.empty()){
auto [r,c] = q.front();
q.pop();
area++;
for(auto d : dir){
int nr = r + d[0],nc = c + d[1];
if(nr >= 0 && nr < n && nc >= 0 && nc < m && grid[nr][nc] == '1'){
grid[nr][nc] = '0';
q.push({nr,nc});
}
}
}
maxarea = max(maxarea,area);
}
}
}
cout << maxarea;
}