#include <iostream>
#include <algorithm>
using namespace std;
int cnt = 0;
int dx[4] = {0, -1, 1, 0};
int dy[4] = {-1, 0, 0, 1};
int arr[101][101];
int visited[101][101] = {0,};
void cnout (int max_val,int i,int j,int k,int n) {
    visited[i][j] = 1;
    for (int b = 0;b < 4;b++) {
        if (0 <= i + dy[b] && n > i + dy[b] && 0 <= i + dy[b] && n > i + dy[b]) {
            if (arr[i+dy[b]][j+dx[b]] > k) {
                if (visited[i+dy[b]][j+dx[b]] != 1) {
                    visited[i+dy[b]][j+dx[b]] = 1;
                    cnout(max_val,i+dy[b],j+dx[b],k,n);
                }
            }
        }
    }
}
int main() {
    int n;
    cin >> n;
    for (int i = 0;i < n;i++) {
        for (int j = 0;j < n;j++) {
            cin >> arr[i][j];
        }
    }
    int max_val = arr[0][0];
    for (int i = 0;i < n;i++) {
        for (int j = 0;j < n;j++) {
            if (max_val < arr[i][j]) {
                max_val = arr[i][j];
            }
        }
    }
    int max_val_val = 0;
    for (int k = 0;k < max_val;k++) {
        cnt = 0;   
        for (int i = 0;i < n;i++) {
              for (int j = 0;j < n;j++) {
                    visited[i][j] = 0;
              }
        }
        for (int i = 0;i < n;i++) {
            for (int j = 0;j < n;j++ ) {
                if (arr[i][j] > k && visited[i][j] == 0) {
                    cnout(max_val,i,j,k,n);
                    cnt++;
                    if (max_val_val < cnt) {
                        max_val_val = cnt;
                    }
                }
            }
        }
    }

    cout << max_val_val;
    return 0;
}   

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: