题目截图如下
题目网址:https://www.lanqiao.cn/problems/172/learning/
import java.util.Scanner;
import java.util.Arrays;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static long result = 0l;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[][] quare = new int[3][n];
for(int i = 0; i < 3; i++){
for(int k = 0; k < n; k++){
quare[i][k] = scan.nextInt();
}
Arrays.sort(quare[i]);
}
//定义两个指针(下标)
int j = 0;
int k = 0;
for(int i=0;i<n;i++){
//找到最后一个比quare[1][i]小的数
while(j<n && quare[0][j]<quare[1][i]){
j++;
}
//找到第一个比quare[1][i]大的数
while(k<n && quare[2][k]<=quare[1][i]){
k++;
}
result = result + (long)(j * (n-k));
}
System.out.println(result);
scan.close();
}
}
按回车,没有任何反应
遇到,数据量大的数据正常输出
呃呃呃这个题的目的是为了啥...
找A,B,C的组合方式有多少种?
或者解释一下为什么例子的答案是27