Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- namespace asdasd
- {
- class Program
- {
- static void Main(string[] args)
- {
- var n = int.Parse(Console.ReadLine());
- var m = int.Parse(Console.ReadLine());
- var matrix = new int[n][];
- for(int i = 0; i < n; i++)
- {
- matrix[i] = new int[m];
- var line = Console.ReadLine().Split().Select(int.Parse).ToArray();
- matrix[i] = line;
- matrix[i][0] = line[0];
- for(int j = 1; j < m; j++)
- {
- matrix[i][j] += matrix[i][j - 1];
- }
- }
- var res = FindLargestSubMatrix(matrix, n, m);
- Console.WriteLine(res[0]);
- Console.WriteLine($"{res[1]},{res[1] + 2}");
- }
- static int[] FindLargestSubMatrix(int[][] matrix, int n, int m)
- {
- int max = int.MinValue;
- var start = 0;
- for(int i = 0; i < n - 2; i++)
- {
- for(int j = 0; j < m - 2; j++)
- {
- 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);
- if (max < sum)
- {
- max = sum;
- start = i;
- }
- }
- }
- return new int[2] { max, start };
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement