タイトル説明
リトルマイケルは小さな町に住んでいる、彼は毎週テレビの音楽コンクールの午後の解放を見るのが好き。これは、これらの曲がチャートをポップ一覧表示票に基づいて毎週同じ歌を導入しました。
ある日曜日マイケルと彼の友人は、彼らが新しいポップチャートを見ることができないことをあまりにも長い間プレー。彼は非常にがっかりしましたが、彼はすぐに来週の一部が少なくともビルボードを構築することが分かりました。各曲の位置に加えて、これらの曲に応じてその動きについて、先週のランキングリストの情報をランク付けし、ランキング、より正確には、以降今週から、関係なく、曲をその場で行を継続することで、または上に移動以下のランキングは、少し説明が得られます。
プログラミングは、ビルボードによると、マイケルが可能ランキングを推測支援するために、先週与えられました。
入力形式
最初の行は整数N(1≤N≤100)N (1 ≤ N ≤ 。1 0 0 )、リスト上の曲の総数が表されています。
次のN 情報をランク付けNブロックリスト。各ブロックは、2つの列を有し、最初の行は、i番目のブロックである私の名前私の歌、せいぜい含まない歌100を1つの。0 次の三つの単語の第2の列を含む0大文字:UP U- P(ソングチャートで上昇位置)、DOWN D O WはN(チャートの減少にソング位置)または同じS M ランキング、先週チャートを示すと比較し、E(ランキング定数)リストを発生する変更。
出力フォーマット
N N最後の行出力チャートをしてもよいです。
各行は、i番目の行は、最初のランキングが含まれている曲の名前が含まれ、私の歌、私の歌を。
注:ソリューションは、一意である必要はなく、各テストデータのための少なくとも一つの解決策です。
サンプル入力と出力
5 HIGHHOPES UP LOWFEELINGS UP UPANDDOWN DOWN IAMSTILLSTANDING DOWN FOOLINGAROUND DOWN
UPANDDOWN IAMSTILLSTANDING FOOLINGAROUND HIGHHOPES LOWFEELINGS
ソリューション:シンプルなアプリケーションキュー恵み。グリーンタイトル
書式#include <cstdioを> する#include <iostreamの> の#include <cmath> の#include <CStringの> の#include <cstdlib> 書式#include <アルゴリズム> 書式#include <キュー> 使用して 名前空間はstd; 文字列 D1 [ 111 ]、D2 [ 111 [F]、111 ]。 int型アップ、ダウン、now1、now2。 int型のn; 文字列S1、S2; INT メイン(){ freopenは(" 1159.in "、" R " 、STDIN)。 freopenは("" " W "STDOUT); scanf関数(" %のD "& n)は、 のために(int型 I = 1は iがn = <; iは++ ){ CIN >> S1 >> S2; 場合(S2 == " UP "){++まで、D1 [最大] = S1;} もし(S2 == " DOWN "){++ダウン; D2 [DOWN] = S1;} もし(S2 == " SAME 」)[I] = F S1。 } のために(int型のI = 1 ; iが<= N。私は++ ){ 場合(F [I] =!"" )続けます。 他に{ 場合(now1 <ダウン){now1 ++; F [I] = D2 [now1]。} 他 {now2 ++。F [I] = D1 [now2]。} } } のための(int型 i = 1 ; iが++; iが<= N ) COUT [I] << F << ENDL。 リターン 0 ; }