Advertisement
Guest User

Untitled

a guest
Sep 21st, 2015
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.87 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. class MaximalSum
  5. {
  6.     static void Main()
  7.     {
  8.         int[] dimentions = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
  9.         int n = dimentions[0];
  10.         int m = dimentions[1];
  11.  
  12.         int[,] matrix = new int[n,m];
  13.  
  14.         for (int i = 0; i < n; i++)
  15.         {
  16.             int[] rowNumbers = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
  17.             for (int j = 0; j < m; j++)
  18.             {
  19.                 matrix[i, j] = rowNumbers[j];
  20.             }
  21.         }
  22.  
  23.         int currentSum = 0;
  24.         int[] maxSubMatrix = { 0, 0, 0 };
  25.  
  26.         for (int i = 0; i < n - 2; i++)
  27.         {
  28.             for (int j = 0; j < m - 2; j++)
  29.             {
  30.                 currentSum = CalcSum(matrix, i, j)[0];
  31.                 if (currentSum > maxSubMatrix[0])
  32.                 {
  33.                     maxSubMatrix[0] = currentSum;
  34.                     maxSubMatrix[1] = i;
  35.                     maxSubMatrix[2] = j;
  36.                 }
  37.             }
  38.         }
  39.  
  40.         int startRow = maxSubMatrix[1], startCol = maxSubMatrix[2];
  41.  
  42.         Console.WriteLine("Sum = {0}", maxSubMatrix[0]);
  43.         for (int i = startRow; i < startRow + 3; i++)
  44.         {
  45.             for (int j = startCol; j < startCol + 3; j++)
  46.             {
  47.                 Console.Write("{0} ", matrix[i, j]);
  48.             }
  49.             Console.WriteLine();
  50.         }
  51.     }
  52.  
  53.     static int[] CalcSum (int[,] matrix, int startRow, int startCol)
  54.     {
  55.         int[] subMatrix = { 0, startRow, startCol };
  56.         int i = startRow, j = startCol;
  57.  
  58.         for (i = startRow; i < startRow + 3; i++)
  59.         {
  60.             for (j = startCol; j < startCol + 3; j++)
  61.             {
  62.                 subMatrix[0] += matrix[i, j];
  63.             }
  64.         }
  65.         subMatrix[1] = i;
  66.         subMatrix[2] = j;
  67.  
  68.         return subMatrix;
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement