NKSGAME - VOI08 Trò chơi với dãy số

Tác giả: skyvn97

Ngôn ngữ: Java

import java.util.*;
import java.lang.*;
import java.io.*;
public class Main {
	public static void main(String args[]) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		NKSGAME solver = new NKSGAME();
		solver.solve(in, out);
		out.close();
	}
};
class NKSGAME {
	public void solve(InputReader in,PrintWriter out) {
		int n=in.nextInt();
		int[] a=new int[n];
		int[] b=new int[n];
		for (int i=0;i<n;i=i+1) a[i]=in.nextInt();
		for (int i=0;i<n;i=i+1) b[i]=-in.nextInt();
		Arrays.sort(a);
		Arrays.sort(b);
		int j=0;
		int res=INF;
		for (int i=0;i<n;i=i+1) {
			while (j<n && b[j]<a[i]) j++;
			if (j>=n) res=Math.min(res,Abs(a[i]-b[n-1]));
			else {
				res=Math.min(res,Abs(a[i]-b[j]));
				if (j>0) res=Math.min(res,Abs(a[i]-b[j-1]));
			}
		}
		out.println(res);
	}
	private static final int INF=(int)2e9+7;
	private int Abs(int x) {
		return (x<0?-x:x);
	}
};
class InputReader {
    public BufferedReader reader;
    public StringTokenizer tokenizer;
    public InputReader(InputStream stream) {
        reader = new BufferedReader(new InputStreamReader(stream), 32768);
        tokenizer = null;
    }
    public String next() {
        while (tokenizer == null || !tokenizer.hasMoreTokens()) {
            try {
                tokenizer = new StringTokenizer(reader.readLine());
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        return tokenizer.nextToken();
    }
    public int nextInt() {
        return Integer.parseInt(next());
    }
}

Download