蓝桥杯题目

[蓝桥杯]递增三元组

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);
            
        }
    }

}
上一篇下一篇

猜你喜欢

热点阅读