Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5.  
  6. namespace asdasd
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. var n = int.Parse(Console.ReadLine());
  13. var m = int.Parse(Console.ReadLine());
  14.  
  15. var matrix = new int[n][];
  16.  
  17. for(int i = 0; i < n; i++)
  18. {
  19. matrix[i] = new int[m];
  20. var line = Console.ReadLine().Split().Select(int.Parse).ToArray();
  21. matrix[i] = line;
  22. matrix[i][0] = line[0];
  23. for(int j = 1; j < m; j++)
  24. {
  25. matrix[i][j] += matrix[i][j - 1];
  26. }
  27. }
  28.  
  29. var res = FindLargestSubMatrix(matrix, n, m);
  30.  
  31. Console.WriteLine(res[0]);
  32. Console.WriteLine($"{res[1]},{res[1] + 2}");
  33. }
  34.  
  35. static int[] FindLargestSubMatrix(int[][] matrix, int n, int m)
  36. {
  37. int max = int.MinValue;
  38. var start = 0;
  39.  
  40. for(int i = 0; i < n - 2; i++)
  41. {
  42. for(int j = 0; j < m - 2; j++)
  43. {
  44. var sum = matrix[i][j + 2] - (j - 1 >= 0 ? matrix[i][j - 1] : 0) + matrix[i + 1][j + 2] - (j - 1 >= 0 ? matrix[i + 1][j - 1] : 0) + matrix[i + 2][j + 2] - (j - 1 >= 0 ? matrix[i + 2][j - 1] : 0);
  45. if (max < sum)
  46. {
  47. max = sum;
  48. start = i;
  49. }
  50. }
  51. }
  52.  
  53. return new int[2] { max, start };
  54. }
  55. }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement