未通过的代码
package com.jialin.luogu;
import java.util.Scanner;
public class Main {
static int N = 5002;
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
int[][] sum = new int[N][N];
for(int i = 1; i <= n; i++){
int x = in.nextInt();
int y = in.nextInt();
sum[x + 1][y + 1] = in.nextInt();
}
for(int i = 1; i < sum.length; i++)
for(int j = 1; j < sum[0].length; j++)
sum[i][j] += sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1];
int res = 0;
for(int i = m; i < 5002; i++)
for(int j = m; j < 5002; j++)
res = Math.max(res, sum[i][j] - sum[i][j-m] - sum[i-m][j] + sum[i-m][j-m]);
System.out.print(res);
}
}
通过的代码:
package com.jialin.luogu;
import java.util.Scanner;
public class Main {
static int N = 5002;
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
int[][] sum = new int[N][N];
for(int i = 1; i <= n; i++){
int x = in.nextInt();
int y = in.nextInt();
sum[x + 1][y + 1] += in.nextInt();
}
for(int i = 1; i < sum.length; i++)
for(int j = 1; j < sum[0].length; j++)
sum[i][j] += sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1];
int res = 0;
for(int i = m; i < 5002; i++)
for(int j = m; j < 5002; j++)
res = Math.max(res, sum[i][j] - sum[i][j-m] - sum[i-m][j] + sum[i-m][j-m]);
System.out.print(res);
}
}
请问这是为什么? 未通过用例:Subtask #1