Submission

Status:

[PPPPPPPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: meme_boi2

Problemset: เกาะที่ใหญ่ที่สุด

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-18 17:37:14

#include <bits/stdc++.h>
using namespace std;
int m, n, dx[] = {0,1,0,-1}, dy[] = {-1,0,1,0};
vector<vector<char>> mat(172,vector<char>(172,'0'));
bool vis[172][172];
int area = 0;
void dfs(int i,int j){
    vis[i][j] = 1;
    area++;
    for(int k = 0; k < 4; k++){
        int x = i + dx[k], y =j + dy[k];
        if(!vis[x][y] && mat[x][y] == '1'){
            dfs(x,y);
        }
    }
}
int32_t main(){
    cin.tie(nullptr)->sync_with_stdio(0);
    cin >> m >> n;
    for(int i = 1; i <= m; i++){
        for(int j = 1; j <= n; j++){
            cin >> mat[i][j];
        }
    }
    int ans = 0;
    for(int i =1; i <= m; i++){
        for(int j = 1; j <= n; j++){
            if(mat[i][j] == '1' && !vis[i][j]){
                area= 0;
                dfs(i,j);
                ans = max(ans,area);
            }
        }
    }
    cout << ans;
}
/*
c2_st66_largest_island

cd "c:\Users\RICOH-NB110\Desktop\Computer Programing\gchan\" ; if ($?) { g++ c2_st66_largest_island.cpp -o c2_st66_largest_island } ; if ($?) { .\c2_st66_largest_island}  
*/