結果
問題 |
No.814 ジジ抜き
|
ユーザー |
|
提出日時 | 2018-02-21 14:19:47 |
言語 | Java (openjdk 23) |
結果 |
TLE
|
実行時間 | - |
コード長 | 946 bytes |
コンパイル時間 | 2,251 ms |
コンパイル使用メモリ | 78,000 KB |
実行使用メモリ | 54,524 KB |
最終ジャッジ日時 | 2024-09-15 08:51:07 |
合計ジャッジ時間 | 8,681 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | TLE * 1 -- * 22 |
ソースコード
import java.util.Comparator; import java.util.PriorityQueue; import java.util.Scanner; public class Main { public static void main(String[] args) { new Main().run(); } void run() { PriorityQueue<long[]> pq = new PriorityQueue<>(new Comparator<long[]>() { public int compare(long[] obj1, long[] obj2) { return Long.compare(obj1[1], obj2[1]); } }); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for (int i = 0; i < n; ++i) { long K = sc.nextLong(); long L = sc.nextLong(); long D = sc.nextLong(); pq.add(new long[] { K, L, D }); } pq.add(new long[] { -1, Long.MAX_VALUE, Long.MAX_VALUE }); while (!pq.isEmpty()) { long[] o1 = pq.poll(); long[] o2 = pq.poll(); if (o1[1] != o2[1]) { System.out.println(o1[1]); return; } --o1[0]; --o2[0]; o1[1] += 1L << o1[2]; o2[1] += 1L << o2[2]; if (o1[0] > 0) pq.add(o1); if (o2[0] > 0) pq.add(o2); } } }