Submission
Status:
[PPPPPPPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Ninstroyer
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.005 second
Submitted On: 2025-12-25 14:29:21
#include<bits/stdc++.h>
using namespace std;
const int nx = 175;
vector<pair<int,int>> dir = { {0,1},{0,-1},{1,0},{-1,0} };
int main()
{
int n, m; cin>>n>>m;
vector<vector<char>> arr(nx, vector<char>(nx, '0'));
for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) cin>>arr[i][j];
int maxLand = 0;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
if(arr[i][j] == '1')
{
int land = 1;
queue<pair<int,int>> q;
q.push({i,j});
arr[i][j] = 0;
while(!q.empty())
{
auto [r,c] = q.front();
q.pop();
for(auto [rr,cc] : dir)
{
int dr = r+rr;
int dc = c+cc;
if(arr[dr][dc] == '1')
{
land++;
arr[dr][dc] = '0';
q.push({dr,dc});
}
}
}
maxLand = max(maxLand, land);
}
}
}
cout<<maxLand<<endl;
}