Submission
Status:
[P-SSSSSSSSSSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: hyyh
Problemset: เกาะที่ใหญ่ที่สุด
Language: cpp
Time: 0.002 second
Submitted On: 2026-01-24 22:58:24
#include <iostream>
#include <math.h>
#include <vector>
#include <string>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <cstring>
#include <iomanip>
#include <set>
#include <bitset>
using namespace std;
using ll = long long;
using pii = pair<int,int>;
using piii = tuple<int,int,int>;
using piiii = tuple<int,int,int,int>;
#define endl '\n'
#define f first
#define s second
int const N = 175;
int n,m,cnt = 0;
int visit[N][N];
int table[N][N];
int x[4] = {0,1,0,-1};
int y[4] = {1,0,-1,0};
void dfs(int i,int j){
if(visit[i][j]) return;
visit[i][j] = 1;
cnt++;
for(int k = 0;k < 4;k++){
if(table[i+x[k]][j+y[k]]) dfs(i+x[k],j+y[k]);
}
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);
cin >> n >> m;
for(int i = 0;i < n;i++){
string st;cin >> st;
for(int j = 0;j < m;j++){
table[i][j] = st[j]-'0';
//cout << table[i][j] << " ";
}
//cout << endl;
}
vector<int> ans = {0};
for(int i = 0;i < n;i++){
for(int j = 0;j < m;j++){
cnt = 0;
//cout << visit[i][j] << " ";
if(table[i][j] && !visit[i][j]){
dfs(i,j);
ans.emplace_back(cnt);
}
}
//cout << endl;
}
cout << *max_element(ans.begin(),ans.end());
}