結果
問題 | No.2650 [Cherry 6th Tune *] セイジャク |
ユーザー |
![]() |
提出日時 | 2024-02-23 21:57:05 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 1,029 ms / 2,500 ms |
コード長 | 1,432 bytes |
コンパイル時間 | 2,360 ms |
コンパイル使用メモリ | 79,572 KB |
実行使用メモリ | 77,760 KB |
最終ジャッジ日時 | 2024-09-29 06:30:18 |
合計ジャッジ時間 | 28,809 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 31 |
ソースコード
import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.Arrays;import java.util.Set;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 a = Integer.parseInt(sa[1]);sa = br.readLine().split(" ");TreeSet<Obj> set = new TreeSet<>();for (int i = 0; i < n; i++) {Obj o = new Obj();o.i = i;o.x = Integer.parseInt(sa[i]);set.add(o);}int t = Integer.parseInt(br.readLine());int[] l = new int[t];int[] r = new int[t];for (int i = 0; i < t; i++) {sa = br.readLine().split(" ");l[i] = Integer.parseInt(sa[0]);r[i] = Integer.parseInt(sa[1]) + 1;}br.close();int[] ans = new int[n];Arrays.fill(ans, -1);Obj o1 = new Obj();Obj o2 = new Obj();for (int i = t - 1; i >= 0; i--) {o1.x = l[i];o2.x = r[i];Set<Obj> ss = set.subSet(o1, o2);for (Obj o : ss) {ans[o.i] = i + 1;}ss.clear();}PrintWriter pw = new PrintWriter(System.out);for (int i : ans) {pw.println(i);}pw.flush();}static class Obj implements Comparable<Obj> {int i, x;@Overridepublic int compareTo(Obj o) {if (x != o.x) {return x - o.x;}return i - o.i;}}}