Submission

Status:

[PPP-SSSSSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: nik121416

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-17 13:18:59

#include<bits/stdc++.h>
using namespace std;

int n,m;

void p(vector<vector<char>> &mp){
    for(int i = 0; i < n;i++){
        for(int j = 0;j < m;j++){
            cout << mp[i][j];
        }
        cout <<'\n';
    }
    cout << '\n';
}

int f(int a,int b,vector<vector<char>> &mp,vector<vector<bool>> &vis){
    if(a  >= n || b >= m || a < 0 || b < 0) return 0;
    if(mp[a][b] == '0') return 0;
    if(vis[a][b]) return 0;
    vis[a][b] = true;
    int A = 1 + f(a - 1,b,mp,vis) + f(a+1,b,mp,vis) + f(a,b-1,mp,vis) + f(a,b+1,mp,vis);
    mp[a][b] = '0';
    //p(mp);
    return A;
}

int main(){
    int s,e;
    cin >> n >> m;
    vector<vector<char>> mp(n,vector<char> (m));
    vector<vector<bool>> vis(n,vector<bool> (m,false));
    for(int i = 0 ; i < n;i++){
        for(int j = 0 ; j < m;j++){
            cin >> mp[i][j];
        }
    }
    int mx = INT_MIN;
    for(int i = 0 ;i < n;i++){
        for(int j = 0;j < m;j++){
            if(mp[i][j] =='0'){continue;}
            else if(mp[i][j] == '1'){
                int a = f(i,j,mp,vis);
                if(a > mx){
                    mx = a;
                }
            }
        }
    }
    cout << mx;
}