2018年藍橋杯java b組第六題


標題:遞增三元組

給定三個整數數組
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。

對於30%的數據,1 <= N <= 100
對於60%的數據,1 <= N <= 1000
對於100%的數據,1 <= N <= 100000 0 <= Ai, Bi, Ci <= 100000

【輸出格式】
一個整數表示答案

【輸入樣例】
3
1 1 1
2 2 2
3 3 3

【輸出樣例】
27


資源約定:
峰值內存消耗(含虛擬機) < 256M
CPU消耗 < 1000ms


請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入...” 的多余內容。
所有代碼放在同一個源文件中,調試通過后,拷貝提交該源碼。
不要使用package語句。不要使用jdk1.7及以上版本的特性。
主類的名字必須是:Main,否則按無效代碼處理。

當時大概就是這么寫的,不知道有錯誤沒有 ,不過樣例過編了

import java.util.Scanner;

public class Main {
    private static int count=0;
    public static void main(String[] args) {
        Scanner scanner =new Scanner(System.in);
        int N=scanner.nextInt();
        int[] A=new int[N];
        int[] B=new int[N];
        int[] C=new int[N];
        A=put(A,scanner);
        B=put(B,scanner);
        C=put(C,scanner);
        compte(A,B,C);
        System.out.println(count);
    }

    private static void compte(int[] a, int[] b, int[] c) {
        for(int i=0;i<a.length;i++){
            for(int j=0;j<b.length;j++){
                for(int k=0;k<c.length;k++){
                    if(a[i]<b[j]&&b[j]<c[k]){
                        count++;
                    }
                }
            }
        }
    }

    private static int[] put(int[] arr, Scanner scanner) {
        for(int i=0;i<arr.length;i++){
            arr[i]=scanner.nextInt();
        }
        return arr;
    }

}
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM