#タイトル
を順次、整数のシーケンスを読んで整数の数が読み取られたそれぞれの時間は、現在の中央値の出力奇数であります
#説明は
2つのスタック、大根のスタック、小さなヒープルートを確立し、
スタックデータの細根スタック数が少ない+1大ルートに等しいよりも
電流が少ない挿入スタック細根の数を超える場合、スタックが空の細根が、挿入された場合に毎回スタックの最上部には、スタックは、大きな根に挿入され、そして、有効な2つのスタック、不正交換、すなわち、現在のメジアンパイル上部細根の数か否かを判断します
1の#include <ビット/ STDC ++ H> 2 の#define PII対<整数、整数> 3 の#define PB一back 4 の#define Fiの第 5 の#define SE第 6 使って 名前空間STDを、 7 CONST INT N = 1E5 + 10 。 8 int型T、N。 9 INT メイン(){ 10の IOS :: sync_with_stdio(0 )。 11 cin.tie(0 )。 12 cout.tie(0 )。 13 CIN >> T。 14 int型のIDX。 15 一方(t-- ){ 16 CIN >> IDX >> N。 17 COUT << IDX << ' ' << N / 2 + 1 << ENDL。 18 PRIORITY_QUEUE < INT、ベクトル< INT >、大きな< INT >> MIN_。 19 PRIORITY_QUEUE < int型、ベクトル< int型 >> MAX_。 20 INT CNT = 0 。 21 のために(INT I = 1; I <= N。I ++ ){ 22 のint X。 23 cinを>> X; 24 であれば(min_.empty()) 25 min_.push(X)。 26 他に あれば(min_.empty()&& X <!min_.top()) 27 max_.push(x)は、 28 他 29 min_.push(x)は、 30 31 であれば(min_.size()> max_.size()+ 1 ){ 32 INT TMP = min_.top()。 33 min_.pop()。 34 max_.push(TMP)。 35 } 36 であれば(max_.size()> min_.size()){ 37 INT TMP = max_.top()。 38 max_.pop()。 39 min_.push(TMP)。 40 } 41 であれば(I&1 ){ 42 CNT ++ 。 43 COUT << min_.top()<< ' ' 。 44 } 45 であれば(CNT == 10 ){ 46 COUT << ENDL。 47 CNT = 0 。 48 } 49 } 50 COUT << ENDL。 51 } 52 }