結果
| 問題 |
No.649 ここでちょっとQK!
|
| コンテスト | |
| ユーザー |
バカらっく
|
| 提出日時 | 2018-02-13 15:37:46 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 767 ms / 3,000 ms |
| コード長 | 1,988 bytes |
| コンパイル時間 | 2,869 ms |
| コンパイル使用メモリ | 81,028 KB |
| 実行使用メモリ | 59,260 KB |
| 最終ジャッジ日時 | 2024-11-29 11:58:07 |
| 合計ジャッジ時間 | 20,115 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 32 |
ソースコード
import java.io.BufferedReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.PriorityQueue;
public class Main {
public BufferedReader br;
/**
* メイン処理
* @throws IOException
*/
public void Proc() throws IOException {
int[] inpt = getIntArray();
int q = inpt[0];
int k = inpt[1];
PriorityQueue<Long> q1 = new PriorityQueue<>();
PriorityQueue<Long> q2 = new PriorityQueue<>();
StringBuilder ans = new StringBuilder();
for(int i=0; i<q; i++) {
long[] tm = getLongArray();
if(tm[0]==1) {
if(q1.size()<k-1) {
q1.add(tm[1]*-1);
} else if(q2.size()==0||q2.peek()>tm[1]) {
q1.add(tm[1]*-1);
q2.add(q1.poll()*-1);
} else {
q2.add(tm[1]);
}
} else {
if(q2.size()<=0){
ans.append("-1\n");
} else {
ans.append(q2.poll()+"\n");
}
}
}
System.out.print(ans.toString());
}
private long[] getLongArray() throws IOException {
String[] inpt = br.readLine().split(" ");
List<Long> lst = new ArrayList<>();
for(String tmp:inpt) {
lst.add(Long.parseLong(tmp));
}
long[] ret = new long[lst.size()];
for(int i=0; i<ret.length;i++) {
ret[i] = lst.get(i);
}
return ret;
}
private int[] getIntArray() throws IOException {
String[] inpt = br.readLine().split(" ");
List<Integer> lst = new ArrayList<>();
for(String tmp:inpt) {
lst.add(Integer.parseInt(tmp));
}
int[] ret = new int[lst.size()];
for(int i=0; i<ret.length;i++) {
ret[i] = lst.get(i);
}
return ret;
}
public static void main(String[] args) {
Main mn = new Main();
mn.br = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
try {
mn.Proc();
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
} finally {
try {
mn.br.close();
} catch (IOException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
}
}
バカらっく