結果
問題 | No.3072 Speedrun Query |
ユーザー |
![]() |
提出日時 | 2025-03-21 22:35:57 |
言語 | Java (openjdk 23) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,642 bytes |
コンパイル時間 | 2,317 ms |
コンパイル使用メモリ | 82,144 KB |
実行使用メモリ | 183,504 KB |
最終ジャッジ日時 | 2025-03-21 22:36:39 |
合計ジャッジ時間 | 37,757 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge7 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 20 TLE * 1 |
ソースコード
import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.TreeSet;public class Main {public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String[] sa = br.readLine().split(" ");int n = Integer.parseInt(sa[0]);int ka = Integer.parseInt(sa[1]);int kb = Integer.parseInt(sa[2]);sa = br.readLine().split(" ");TreeSet<Integer> seta = new TreeSet<>();for (int i = 0; i < ka; i++) {seta.add(Integer.parseInt(sa[i]));}sa = br.readLine().split(" ");TreeSet<Integer> setb = new TreeSet<>();for (int i = 0; i < kb; i++) {setb.add(Integer.parseInt(sa[i]));}setb.add(-10000000);setb.add(10000000);int min = n;for (int e : seta) {min = Math.min(min, getDist(e, setb));}seta.add(-10000000);seta.add(10000000);int q = Integer.parseInt(br.readLine());StringBuilder sb = new StringBuilder();for (int i = 0; i < q; i++) {sa = br.readLine().split(" ");int s = Integer.parseInt(sa[0]);int t = Integer.parseInt(sa[1]);int ans = t - s;ans = Math.min(ans, getDist(s, seta) + getDist(t, seta));ans = Math.min(ans, getDist(s, setb) + getDist(t, setb));ans = Math.min(ans, getDist(s, seta) + getDist(t, setb) + min);ans = Math.min(ans, getDist(s, setb) + getDist(t, seta) + min);sb.append(ans).append("\n");}br.close();System.out.print(sb.toString());}static int getDist(int e, TreeSet<Integer> set) {int min = 100000000;min = Math.min(min, e - set.floor(e));min = Math.min(min, set.ceiling(e) - e);return min;}}