Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
462
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.70 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.LinkedHashMap;
  3. import java.util.Map;
  4. import java.util.Scanner;
  5.  
  6. public class asd {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.         int rows = Integer.parseInt(scanner.nextLine());
  10.         String[][] matrix = new String[rows][];
  11.         for (int row = 0; row < rows; row++) {
  12.             String[] line = scanner.nextLine().split("\\s+");
  13.             matrix[row] = line;
  14.         }
  15.         String input;
  16.         int carrots = 0;
  17.         int potatoes = 0;
  18.         int lettuce = 0;
  19.         int harmedVeg = 0;
  20.  
  21.  
  22.         while (!"End of Harvest".equals(input = scanner.nextLine())) {
  23.             String[] tokens = input.split("\\s+");
  24.             String command = tokens[0];
  25.             int row = Integer.parseInt(tokens[1]);
  26.             int col = Integer.parseInt(tokens[2]);
  27.  
  28.             if (command.equals("Harvest")) {
  29.                 if (!isOutOfBound(matrix, row, col)) {
  30.                     String vegetable = matrix[row][col];
  31.                     switch (vegetable) {
  32.                         case "C":
  33.                             carrots++;
  34.                             break;
  35.                         case "P":
  36.                             potatoes++;
  37.                             break;
  38.                         case "L":
  39.                             lettuce++;
  40.                             break;
  41.                     }
  42.                     matrix[row][col] = " ";
  43.                 }
  44.             } else {
  45.                 if (!isOutOfBound(matrix, row, col)) {
  46.                     String direction = tokens[3];
  47.                     switch (direction) {
  48.                         case "up":
  49.                             harmedVeg += moleVegetablesUp(matrix, row, col);
  50.                             break;
  51.                         case "down":
  52.                             harmedVeg += moleVegetablesDown(matrix, row, col);
  53.                             break;
  54.                         case "left":
  55.                             harmedVeg += moleVegetablesLeft(matrix, row, col);
  56.                             break;
  57.                         case "right":
  58.                             harmedVeg += moleVegetablesRight(matrix, row, col);
  59.                             break;
  60.                     }
  61.                 }
  62.             }
  63.         }
  64.         printMatrix(matrix);
  65.  
  66.         System.out.printf("Carrots: %d%nPotatoes: %d%nLettuce: %d%nHarmed vegetables: %d%n", carrots,
  67.                 potatoes, lettuce, harmedVeg);
  68.     }
  69.  
  70.     private static int moleVegetablesUp(String[][] matrix, int row, int col) {
  71.         int harmedVeg = 0;
  72.         for (int i = row; row >= 0; ) {
  73.             if (!isOutOfBound(matrix, row, col)) {
  74.                 if (!matrix[row][col].equals(" ")) {
  75.                     matrix[row][col] = " ";
  76.                     harmedVeg++;
  77.                 }
  78.             }
  79.             row -= 2;
  80.         }
  81.         return harmedVeg;
  82.     }
  83.  
  84.     public static int moleVegetablesDown(String[][] matrix, int row, int col) {
  85.         int harmedVeg = 0;
  86.         for (int i = row; row < matrix.length; ) {
  87.             if (!isOutOfBound(matrix, row, col)) {
  88.                 if (!matrix[row][col].equals(" ")) {
  89.                     matrix[row][col] = " ";
  90.                     harmedVeg++;
  91.                 }
  92.             }
  93.             row += 2;
  94.         }
  95.         return harmedVeg;
  96.     }
  97.  
  98.     public static int moleVegetablesLeft(String[][] matrix, int row, int col) {
  99.         int harmedVeg = 0;
  100.         for (int i = col; col >= 0; ) {
  101.             if (!isOutOfBound(matrix, row, col)) {
  102.                 if (!matrix[row][col].equals(" ")) {
  103.                     matrix[row][col] = " ";
  104.                     harmedVeg++;
  105.                 }
  106.             }
  107.             col -= 2;
  108.         }
  109.         return harmedVeg;
  110.     }
  111.  
  112.     public static int moleVegetablesRight(String[][] matrix, int row, int col) {
  113.         int harmedVeg = 0;
  114.         for (int i = col; col < matrix[row].length; ) {
  115.             if (!isOutOfBound(matrix, row, col)) {
  116.                 if (!matrix[row][col].equals(" ")) {
  117.                     matrix[row][col] = " ";
  118.                     harmedVeg++;
  119.                 }
  120.             }
  121.             col += 2;
  122.         }
  123.         return harmedVeg;
  124.     }
  125.  
  126.  
  127.     private static void printMatrix(String[][] matrix) {
  128.         for (int i = 0; i < matrix.length; i++) {
  129.             for (int j = 0; j < matrix[i].length; j++) {
  130.                 System.out.print(matrix[i][j] + " ");
  131.             }
  132.             System.out.println();
  133.         }
  134.     }
  135.  
  136.     public static boolean isOutOfBound(String[][] matrix, int row, int col) {
  137.         return row < 0 || row >= matrix.length || col < 0 || col >= matrix[row].length;
  138.     }
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement