結果
| 問題 |
No.649 ここでちょっとQK!
|
| コンテスト | |
| ユーザー |
ElnathGeek
|
| 提出日時 | 2018-10-18 20:23:58 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 293 ms / 3,000 ms |
| コード長 | 2,523 bytes |
| コンパイル時間 | 1,021 ms |
| コンパイル使用メモリ | 117,780 KB |
| 実行使用メモリ | 5,916 KB |
| 最終ジャッジ日時 | 2024-11-07 00:35:35 |
| 合計ジャッジ時間 | 7,766 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 32 |
コンパイルメッセージ
main.cpp: In function ‘ll gcd(ll, ll)’:
main.cpp:62:12: warning: control reaches end of non-void function [-Wreturn-type]
62 | gcd(b,d);
| ~~~^~~~~
ソースコード
#define _USE_MATH_DEFINES
#include <iostream>
#include <fstream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <cassert>
#include <string>
#include <vector>
#include <utility>
#include <complex>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <deque>
#include <tuple>
#include <bitset>
#include <limits>
#include <algorithm>
#include <array>
#include <random>
#include <complex>
#include <regex>
using namespace std;
typedef long double ld;
typedef long long ll;
typedef vector<int> vint;
typedef vector<ll> vll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef pair<double, double> pdd;
#define quickIO() {cin.tie(0); cout.sync_with_stdio(false);}
#define rep(i,n) for(ll i=0; i<(ll)n; i++)
#define mp(a,b) make_pair(a,b)
#define pb push_back
#define fcout cout << fixed << setprecision(10)
const ll inf = 1e18;
const ll mod = 1e9 +7;
ld sqrtld(ld x){
ld left = 0, right = x;
rep(i, 100){
ld mid = (left + right)/2;
if (mid*mid <= x) left =mid;
else right = mid;
}
return left;
}
ll gcd(ll a, ll b){
if(b>a){
ll c =b; b=a; a=c;
}
ll d = a%b;
if(d==0){
return b;
}else if(d==1){
return 1;
}else{
gcd(b,d);
}
}
int main (){
int q,k;
cin >> q >> k;
int n=0;
priority_queue<ll> maxpq;
priority_queue<ll, vector<ll>, greater<ll> > minpq;
rep(i,q){
ll w; cin >> w;
if(w==1){
ll v; cin >> v;
n++;
if(n<=k){
maxpq.push(v);
//cout << maxpq.top() << endl;
}else{
if(v > maxpq.top()){
minpq.push(v);
//cout << minpq.top() << endl;
}else{
maxpq.push(v);
minpq.push(maxpq.top());
maxpq.pop();
//cout << minpq.top() << endl;
}
}
}else{
ll ans=0;
if(n<k){
ans = -1;
}else{
ans = maxpq.top();
maxpq.pop();
if(n>k){
maxpq.push(minpq.top());
minpq.pop();
}
n--;
}
cout << ans << endl;
}
}
return 0;
}
ElnathGeek