Java0分超时,求大佬指点
查看原帖
Java0分超时,求大佬指点
809175
zyk_ovo楼主2024/3/13 22:12
import java.util.Scanner;
import java.util.Arrays;


public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int [] a = new int[n];
		int [] b = new int[n];
		int [] c = new int[n];
		for(int i = 0; i < n; i++) {
			a[i] = sc.nextInt();
		}

		for(int i = 0; i < n; i++) {
			b[i] = sc.nextInt();
		}

		for(int i = 0; i < n; i++) {
			c[i] = sc.nextInt();
		}
		
		Arrays.sort(a);
		Arrays.sort(b);
		Arrays.sort(c);
		
		
		long sum = 0;
		
		
		for(int i = 0; i < n; i++) {
			int tar = b[i];
			
			int l = 0,r = n-1;
			while(l < r) {
				int mid = l + r >> 1;
				if(a[mid] >= tar){
					r = mid;
				}else {
					l = mid+1;
				}
			}
			
			long cnt1 = l+1;
			
			l = 0;
			r = n-1;
			
			while(l < r) {
				int mid = l + r >> 1;
				if(c[mid] <= tar){
					l = mid;
				}else {
					r=mid-1;
				}
			}
			
			long cnt2 = n-l;
			
		//	System.out.println(cnt1 + " " + cnt2);
			
			sum += cnt1*cnt2;
		}
		System.out.println(sum);
	}
}
2024/3/13 22:12
加载中...