Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.io.*;
- public class MyFirstProgram {
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- PrintWriter out = new PrintWriter(System.out);
- int n = in.nextInt();
- int[][] d = new int[n + 1][n + 1];
- for (int i = 0; i < n; i++)
- for (int j = 0; j < n; j++) {
- d[i][j] = in.nextInt();
- }
- long res1 = -2, res2 = -456;
- long[] d1 = new long[2 * n];
- long[] d2 = new long[2 * n];
- long[][] tmp = new long[n][n];
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- if (i == 0 || j == 0) {
- tmp[i][j] = d[i][j];
- } else {
- tmp[i][j] += tmp[i - 1][j - 1] + d[i][j];
- }
- }
- }
- for (int i = 0; i < n; i++) {
- d2[i] = tmp[i][n - 1];
- }
- for (int i = 0; i < n - 1; i++) {
- d2[n + i] = tmp[n - 1][n - i - 2];
- }
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- tmp[i][j] = 0;
- }
- }
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- if (i == 0 || j == n - 1) {
- tmp[i][j] = d[i][j];
- } else {
- tmp[i][j] += tmp[i - 1][j + 1] + d[i][j];
- }
- }
- }
- for (int i = 0; i < n; i++) {
- d1[i] = tmp[i][0];
- }
- for (int i = 0; i < n - 1; i++) {
- d1[n + i] = tmp[n - 1][i + 1];
- }
- int x1 = -1;
- int x2 = -1;
- int y1 = -1;
- int y2 = -1;
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- if ((i + j) % 2 == 0) {
- if (d1[i + j] + d2[i + n - j - 1] - d[i][j] > res1) {
- res1 = d1[i + j] + d2[i + n - j - 1] - d[i][j];
- x1 = i + 1;
- y1 = j + 1;
- }
- } else {
- if (d1[i + j] + d2[i + n - j - 1] - d[i][j] > res2) {
- res2 = d1[i + j] + d2[i + n - j - 1] - d[i][j];
- x2 = i + 1;
- y2 = j + 1;
- }
- }
- }
- }
- out.println(res1 + res2);
- out.println(x1+" "+y1+" "+x2+" "+y2);
- in.close();
- out.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment