Advertisement
alyoshinkkaa

Untitled

Jul 29th, 2023
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.76 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.Scanner;
  3.  
  4. public class ReverseAvg {
  5.     // :NOTE: numStr? -- maybe you want to name it "row" or "line", String is a class in Java?
  6.     public static long[][] addLineInMatrix(long[][] matrixInput, int numStr) {
  7.         if (matrixInput.length == numStr + 1) {
  8.             long[][] matrixOutput = new long[matrixInput.length * 2][];
  9.             for (int i = 0; i < matrixInput.length; i++) {
  10.                 matrixOutput[i] = new long[matrixInput[i].length];
  11.                 System.arraycopy(matrixInput[i], 0, matrixOutput[i], 0, matrixInput[i].length);
  12.             }
  13.             Arrays.fill(matrixOutput, matrixInput.length, matrixInput.length*2, new long[1]);
  14.             matrixInput = matrixOutput;
  15.         }
  16.         return matrixInput;
  17.     }
  18.     public static long[] addDigitInMatrix(long[] matrixInput, int numDig) {
  19.         if (matrixInput.length == numDig + 1) {
  20.             long[] matrixOutput = new long[matrixInput.length * 2];
  21.             System.arraycopy(matrixInput, 0, matrixOutput, 0, matrixInput.length);
  22.             matrixInput = matrixOutput;
  23.         }
  24.         return matrixInput;
  25.     }
  26.     public static void main(String[] args) {
  27.         Scanner in = new Scanner(System.in);
  28.         long[][] matrix = new long[1][1];
  29.         long[] matrixSize = new long[1];
  30.         long[] numbersInColumns = new long[1];
  31.         long[] sumColumn = new long[1];
  32.         // :NOTE: same -- naming
  33.         long[] sumString = new long[1];
  34.         // :NOTE: same -- naming
  35.         int numStr = 0;
  36.         int numElem = 0;
  37.         while (in.hasNextLine()) {
  38.             Scanner str = new Scanner(in.nextLine());
  39.             while (str.hasNextInt()) {
  40.                 matrix[numStr][numElem] = str.nextInt();
  41.                 sumString[numStr] +=matrix[numStr][numElem];
  42.                 sumColumn[numElem] += matrix[numStr][numElem];
  43.                 numbersInColumns[numElem]++;
  44.                 sumColumn = addDigitInMatrix(sumColumn, numElem);
  45.                 numbersInColumns = addDigitInMatrix(numbersInColumns, numElem);
  46.                 matrix[numStr] = addDigitInMatrix(matrix[numStr], numElem);
  47.                 numElem++;
  48.             }
  49.             matrix = addLineInMatrix(matrix, numStr);
  50.             matrixSize = addDigitInMatrix(matrixSize, numStr);
  51.             sumString = addDigitInMatrix(sumString, numStr);
  52.             matrixSize[numStr] = numElem;
  53.             numStr++;
  54.             numElem = 0;
  55.         }
  56.         in.close();
  57.         for (int i = 0; i < numStr; i++) {
  58.             for (int j = 0; j < matrixSize[i]; j++) {
  59.                 System.out.print((sumString[i] + sumColumn[j] - matrix[i][j])/(numbersInColumns[j] + matrixSize[i] - 1) + " ");
  60.             }
  61.             System.out.println();
  62.         }
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement