結果
問題 | No.1675 Strange Minimum Query |
ユーザー |
![]() |
提出日時 | 2021-09-10 21:38:06 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 1,285 ms / 2,000 ms |
コード長 | 1,387 bytes |
コンパイル時間 | 2,826 ms |
コンパイル使用メモリ | 82,248 KB |
実行使用メモリ | 87,292 KB |
最終ジャッジ日時 | 2024-06-11 22:52:25 |
合計ジャッジ時間 | 32,075 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 34 |
ソースコード
import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.PriorityQueue;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 q = Integer.parseInt(sa[1]);PriorityQueue<Obj> que = new PriorityQueue<>((o1, o2) -> o2.b - o1.b);for (int i = 0; i < q; i++) {sa = br.readLine().split(" ");Obj o = new Obj();o.l = Integer.parseInt(sa[0]) - 1;o.r = Integer.parseInt(sa[1]);o.b = Integer.parseInt(sa[2]);que.add(o);}br.close();int[] a = new int[n];Arrays.fill(a, 1);TreeSet<Integer> set = new TreeSet<>();for (int i = 0; i < n; i++) {set.add(i);}Obj pre = null;while (!que.isEmpty()) {Obj o = que.poll();Set<Integer> ss = set.subSet(o.l, o.r);if (pre != null && o.b < pre.b && ss.isEmpty()) {System.out.println(-1);return;}for (int i : ss) {a[i] = o.b;}ss.clear();pre = o;}StringBuilder sb = new StringBuilder();for (int i = 0; i < n; i++) {sb.append(a[i]).append(' ');}sb.deleteCharAt(sb.length() - 1);System.out.println(sb.toString());}static class Obj {int l, r, b;}}