Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- class Main {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- int n = sc.nextInt();
- int m = sc.nextInt();
- int[][] map = new int[n][m];
- for (int z = 0; z < n; z++) {
- for (int y = 0; y < m; y++) {
- map[z][y] = sc.nextInt();
- }
- }
- int answer = 0;
- for (int z = 0; z < n * m - 2; z++) {
- if (map[z / m][z % m] == 0) {
- for (int y = z + 1; y < n * m - 1; y++) {
- if (map[y / m][y % m] == 0) {
- for (int x = y + 1; x < n * m; x++) {
- if (map[x / m][x % m] == 0) {
- int[][] newmap = new int[n][m];
- for (int w = 0; w < n; w++) {
- for (int v = 0; v < m; v++) {
- newmap[w][v] = map[w][v];
- }
- }
- newmap[z / m][z % m] = 1;
- newmap[y / m][y % m] = 1;
- newmap[x / m][x % m] = 1;
- for (int w = 0; w < n; w++) {
- for (int v = 0; v < m; v++) {
- if (newmap[w][v] == 2) {
- Queue<Integer> q = new LinkedList<Integer>();
- q.add(w);
- q.add(v);
- while (!q.isEmpty()) {
- int row = q.poll();
- int column = q.poll();
- if (column + 1 < m && newmap[row][column + 1] == 0) {
- newmap[row][column + 1] = 2;
- q.add(row);
- q.add(column + 1);
- }
- if (row + 1 < n && newmap[row + 1][column] == 0) {
- newmap[row + 1][column] = 2;
- q.add(row + 1);
- q.add(column);
- }
- if (column - 1 >= 0 && newmap[row][column - 1] == 0) {
- newmap[row][column - 1] = 2;
- q.add(row);
- q.add(column - 1);
- }
- if (row - 1 >= 0 && newmap[row - 1][column] == 0) {
- newmap[row - 1][column] = 2;
- q.add(row - 1);
- q.add(column);
- }
- }
- }
- }
- }
- int count = 0;
- for (int w = 0; w < n; w++) {
- for (int v = 0; v < m; v++) {
- if (newmap[w][v] == 0) {
- count++;
- }
- }
- }
- answer = Math.max(answer, count);
- }
- }
- }
- }
- }
- }
- System.out.println(answer);
- sc.close();
- }
- }
Add Comment
Please, Sign In to add comment