第一行包含空格分隔的两个数字 N和D(1 ≤ N ≤ 1000000; 1 ≤ D ≤ 1000000)
第二行包含N个建筑物的的位置,每个位置用一个整数(取值区间为[0, 1000000])表示,从小到大排列(将字节跳动大街看做一条数轴)
一个数字,表示不同埋伏方案的数量。结果可能溢出,请对 99997867 取模
4 3 1 2 3 4
4
可选方案 (1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)
5 19 1 10 20 30 50
1
可选方案 (1, 10, 20)
1 import java.util.*; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scanner scanner = new Scanner(System.in); 6 7 while (scanner.hasNextLine()) { 8 String l1 = scanner.nextLine(); 9 String l2 = scanner.nextLine(); 10 11 Integer N = Integer.valueOf(l1.split(" ")[0]); 12 Integer D = Integer.valueOf(l1.split(" ")[1]); 13 14 String[] str = l2.split(" "); 15 16 Integer result = 0; 17 18 for (int i = 0; i <= str.length - 1; i++) { 19 for (int k = i + 2; k <= str.length - 1; k++) { 20 if (Integer.valueOf(str[k]) - Integer.valueOf(str[i]) <= D) { 21 result = result + k- i -1; 22 } 23 else{ 24 break; 25 } 26 } 27 28 } 29 result = result % 99997867; 30 System.out.println(result); 31 32 } 33 } 34 }
原文:https://www.cnblogs.com/zjf1987/p/12581250.html