[蓝桥杯]递增三元组
2020-01-30 本文已影响0人
二十五六岁的你
问题 2194: [蓝桥杯][2018年第九届真题]递增三元组
题目描述
给定三个整数数组
A = [A1, A2, … AN],
B = [B1, B2, … BN],
C = [C1, C2, … CN],
请你统计有多少个三元组(i, j, k) 满足:
\1. 1 <= i, j, k <= N
\2. Ai < Bj < Ck
输入
第一行包含一个整数N。 第二行包含N个整数A1, A2, ... AN。 第三行包含N个整数B1, B2, ... BN。 第四行包含N个整数C1, C2, ... CN。
输出
一个整数表示答案
样例输入
3
1 1 1
2 2 2
3 3 3
样例输出
27
提示
对于30%的数据,1 <= N <= 100 对于60%的数据,1 <= N <= 1000 对于100%的数据,1 <= N <= 100000 0 <= Ai, Bi, Ci <= 100000
import java.util.Scanner;
/**
* Created with IntelliJ IDEA.
* User: 76147
* Date: 2020-01-26
* Time: 22:27
* Description:
*/
public class 递增三元组 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int n = sc.nextInt();
int arr1[] = new int[n];
int arr2[] = new int[n];
int arr3[] = new int[n];
for (int i = 0; i < n; i++) {
arr1[i] = sc.nextInt();
}
for (int i = 0; i < n; i++) {
arr2[i] = sc.nextInt();
}
for (int i = 0; i < n; i++) {
arr3[i] = sc.nextInt();
}
int res = 0;
/**
* 方法一
*/
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (arr1[i] < arr2[j]) {
for (int k = 0; k < n; k++) {
if (arr2[j] < arr3[k]) {
res++;
}
}
}
}
}
System.out.println(res);
}
}
}