Submission
Status:
[PPP-SSSSSSSSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: Kidmaiok
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.002 second
Submitted On: 2026-10-15 09:44:23
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define space << ' '
#define nl << endl
vector<string> grid;
bool visited[170][170];
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int r,c;
cin >> r >> c;
for(int i = 0; i < r; i++){
string n;
cin >> n;
grid.push_back(n);
}
int ans = INT_MIN;
int d1[] = {-1, 1, 0, 0};
int d2[] = {0, 0, -1, 1};
for(int i =0; i < r; i++){
for(int j =0; j < c; j++){
if (grid[i][j] != '1' || visited[i][j]) continue;
queue<pair<int, int>> q;
q.push({i,j});
visited[i][j] = 1;
int area = 0;
while(q.empty() == 0){
auto[x,y] = q.front();
area++;
q.pop();
for(int k =0; k < 4; k++){
int nx = x + d1[k], ny = y + d2[k];
if((nx < 0 || nx >= r || ny < 0 || ny >= c) || visited[nx][ny] == 1 || grid[nx][ny] != '1'){
continue;
}
visited[nx][ny] = 1;
q.push({nx,ny});
}
}
ans = max(ans,area);
}
}
cout << ans;
}