B - チーム決め
Editorial
/
Time Limit: 2 sec / Memory Limit: 256 MB
配点 : 600 点
問題文
ACoder では,チーム高橋とチーム青木の 2 チーム対抗でのプログラミングコンテストを開こうとしています. チーム高橋の参加者の候補は N 人いて,チーム高橋の i 番目の候補者の実力は A_i で表されます. また,チーム青木の参加者の候補は M 人いて,チーム青木の i 番目の候補者の実力は B_i で表されます.
コンテストを開く前に,チーム高橋,チーム青木のそれぞれから K 人ずつの参加者を選ぶことにしました. 参加者は,それぞれのチームの参加者の候補から選ばれます. ここで,K 人ずつの参加者を選んだときの,チーム間の実力差を次のように定義することにしました.
- チーム高橋の参加者の中で i 番目に実力の値が大きい人の実力を X_i,チーム青木の参加者の中で i 番目に実力の値が大きい人の実力を Y_i とする.
- このとき,チーム間の実力差は,max (|X_1 - Y_1|, |X_2 - Y_2|, ..., |X_K - Y_K| ) である.
各チームの参加者を決めたときの,チーム間の実力差の最小値を求めてください.
制約
- 1 \leq N \leq 10^5
- 1 \leq M \leq 10^5
- 1 \leq K \leq min (N, M)
- 1 \leq A_i \leq 10^9
- 1 \leq B_i \leq 10^9
- A_i, B_i は整数
入力
入力は以下の形式で標準入力から与えられる.
N M K A_1 A_2 ... A_N B_1 B_2 ... B_M
出力
チーム間の実力差の最小値を出力せよ.
入力例 1
3 4 2 2 11 16 4 7 9 10
出力例 1
2
チーム高橋からは 1, 2 番目の候補者を,チーム青木からは 1, 3 番目の候補者を,参加者として選ぶことにするとよいです. このとき,チーム高橋の参加者の実力は大きい方から順に 11, 2,チーム青木の参加者の実力は大きい方から順に 9, 4 となります.
入力例 2
6 5 3 15 7 14 3 14 11 20 18 15 18 17
出力例 2
3