POJ 2051アーガスプライオリティキュー

アーガス

制限時間: 1000ミリ秒   メモリの制限: 30000K
合計提出: 12282   受け入れ: 6110

説明

データ・ストリームは、リアルタイム、項目の連続、順序付けられたシーケンスです。いくつかの例は、Web利用状況ログや通話記録などのセンサデータ、インターネットトラフィック、金融ティッカー、オンラインオークション、およびトランザクションログが含まれます。同様に、ストリームに対する問合せは、時間をかけて継続的に実行し、インクリメンタルに新しいデータが到着すると、新しい結果を返します。例えば、工場、倉庫の温度検出システムは、次のようなクエリを実行してもよいです。
クエリ-1:「5分ごとに、過去5分間かけて最高温度を取得します。」
クエリ-2:「過去10分かけて、各フロアに測定された平均温度を返します。」

私たちは、データストリームを超えるクエリを処理アーガスと呼ばれるデータストリーム管理システムを開発しました。ユーザーはアーガスへのクエリを登録することができます。アーガスは、変更データ上で動作するクエリを保持し、所望の周波数に対応するユーザに結果を返します。

アーガスのために、我々は、クエリを登録するには、次の命令を使用します。
登録Q_num期間

Q_num(0 <Q_num <= 3000)クエリID番号、および期間(0 <期間<= 3000)結果の二つの連続リターンの間隔があります。レジスタの期間秒後、結果が最初に返され、その後、結果はすべての期間の秒を返されます。

ここでは、一度にアーガスに登録し、いくつかの異なるクエリを持っています。すべてのクエリが異なるQ_numを持っていることが確認されました。あなたの仕事は結果を返すために、最初のKクエリを伝えることです。2つの以上のクエリが同時に結果を返すようにしている場合、彼らはQ_numの昇順に1による結果の1を返します。

入力

入力の最初の部分はアーガス、1行に1つの命令にレジスタ命令です。あなたは、命令の数が1000を超えないと仮定することができ、これらのすべての命令が同時に実行されています。この部分は、「#」の行で終わっています。

第二部では、あなたの仕事です。この部分は、一つの正の整数K(<= 10000)である、唯一の行を含みます。

出力

あなたは、出力結果を返すように最初のKクエリ、1行に1つの数のQ_num必要があります。

サンプル入力

レジスタ2004 200 
登録300 2005年の
5

サンプル出力

2004年
2005 
2004年
2004年
2005 

質問意図されている:タスクID(各タスクのためのユニークな)所与のタスクの数、及び実行間隔(各タスク一意ではない); k番目のタスクID番号の出力前に必要な実行時間に応じて、2実行時に、同じタスクでは、まず小さな出力のID


プライオリティキュー
#include <iostreamの> 
する#include < ストリング > 
の#include < 文字列・H> 
の#include <キュー>
 使用して 名前空間STD;
 構造体ノード
{ 
    int型のID;
     INT T;
     int型next_t; 
} TEMP; 

BOOL  演算子 <(ノードX、Yノード)// 過負荷が小さいから大型まで、数未満である
{
     IF(== XT YT)
         戻り x.id> ; y.id
     他の
        リターン XT> ; YT 
} 

PRIORITY_QUEUE <ノード> P。
INT メイン()
{ 
    ストリングS。
    int型のk;
    一方、(CIN >> S)
    { 
        もし、(S [ 0 ] == ' ' 
        { 
            CIN >> K。
            破ります; 
        } 
        
        { 
            CIN >> temp.id >> temp.t。
            temp.next_t = temp.t。
            p.push(TEMP)。
        } 
    } 
    一方(k-- 
    { 
        TEMP = p.top()。
        p.pop(); 
        COUT << temp.id << ENDL; 
        temp.t = temp.next_t + temp.t; //は、この番号が最初に表示される更新 
        ; p.push(TEMP)を// キューに格納されています中に入る
    }
     を返す 0 ; 
}

  

おすすめ

転載: www.cnblogs.com/-citywall123/p/11287760.html