Advertisement
Georgi_Benchev

Untitled

Dec 7th, 2024
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.98 KB | None | 0 0
  1. package recursionProblems.CodingTasks2;
  2.  
  3. import java.util.Arrays;
  4. import java.util.Scanner;
  5.  
  6. public class Task1_ScroogeMcDuck {
  7.  
  8.     static int totalCoins = 0;
  9.     static int staticRow = -1;
  10.     static int staticCol = -1;
  11.     static int[][] staticMatrix;
  12.  
  13.     public static void main(String[] args) {
  14.         Scanner scanner = new Scanner(System.in);
  15.  
  16.         int[] staticMatrixSize = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
  17.         int rows = staticMatrixSize[0];
  18.         int cols = staticMatrixSize[1];
  19.         staticMatrix = new int[rows][cols];
  20.  
  21.         for (int row = 0; row < rows; row++) {
  22.             int[] staticMatrixRow = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
  23.             if (staticRow == -1) {
  24.                 for (int col = 0; col < cols; col++) {
  25.                     if (staticMatrixRow[col] == 0) {
  26.                         staticRow = row;
  27.                         staticCol = col;
  28.                         break;
  29.                     }
  30.                 }
  31.             }
  32.             staticMatrix[row] = staticMatrixRow;
  33.         }
  34.         findCoinsCount();
  35.  
  36.  
  37.  
  38.  
  39.     }
  40.  
  41.  
  42.  
  43.     private static void findCoinsCount() {
  44.         boolean check = true;
  45.         int leftIndex = 0;
  46.         int rightIndex = 0;
  47.         int upIndex = 0;
  48.         int downIndex = 0;
  49.  
  50.         if (staticCol != 0) {
  51.             leftIndex = staticMatrix[staticRow][staticCol - 1];
  52.         }
  53.  
  54.         if (staticCol != staticMatrix[0].length - 1) {
  55.             rightIndex = staticMatrix[staticRow][staticCol + 1];
  56.         }
  57.  
  58.         if (staticRow != 0) {
  59.             upIndex = staticMatrix[staticRow - 1][staticCol];
  60.         }
  61.  
  62.         if (staticRow != staticMatrix.length - 1) {
  63.             downIndex = staticMatrix[staticRow + 1][staticCol];
  64.         }
  65.  
  66.  
  67.         if (leftIndex >= rightIndex && leftIndex >= upIndex && leftIndex >= downIndex) {
  68.             if (leftIndex != 0) {
  69.                 staticCol--;
  70.             }else {
  71.                 check=false;
  72.             }
  73.         } else if (rightIndex > leftIndex && rightIndex >= upIndex && rightIndex >= downIndex) {
  74.             if (rightIndex != 0) {
  75.                 staticCol++;
  76.             }else {
  77.                 check=false;
  78.             }
  79.         } else if (upIndex > leftIndex && upIndex > rightIndex && upIndex >= downIndex) {
  80.             if (upIndex != 0) {
  81.                 staticRow--;
  82.             }else {
  83.                 check=false;
  84.             }
  85.         } else if (downIndex > leftIndex && downIndex > rightIndex && downIndex > upIndex){
  86.             if (downIndex != 0) {
  87.                 staticRow++;
  88.             }else {
  89.                 check=false;
  90.             }
  91.         }else {
  92.             check=false;
  93.         }
  94.         if (check){
  95.             staticMatrix[staticRow][staticCol]--;
  96.             totalCoins++;
  97.             findCoinsCount();
  98.         }else {
  99.             System.out.println(totalCoins);
  100.         }
  101.     }
  102.  
  103.  
  104. }
  105.  
  106.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement