タイトル:スイスの神カード
対象の説明:スイスの流行、彼は非常に強力であった神HRZは、自宅で退屈ので、彼が退屈していたので、彼は、水、水A +を取得できるようにするために、すべてのクラスがあり、そしてより多くの3を得ました個人:カッコウ東、テン神とzjmは(今いくつかの時間のためにスイスの世界の苦しみ神)のカードを再生します。
明らかに、取締役会は4人、サークルで構成されています。私たちは、北、東西四方向を求めます。英語を対応する北、東、南、西です。52あるゲームの合計は、ポーカーで構成されています。初めは、私たちは(英語イニシャルのロゴと、トラックに)ディーラーを任命時計回りの順番をライセンス、ライセンス始め、ディーラーは自分の最初を送ったが、彼の次を行っていません人(時計回りに隣の人)。このように、誰もが13枚のカードを取得します。
今、我々は、(梅)<(正方形シート)<(スペード)<(心臓)、(入力、我々は、それぞれプラム、正方形片C、D、S、Hを使用する最初の色は、カードの順序を定義しますスペード、ハート、すなわち)単語の最初の文字という。符号の顔の値に対して、我々は、2 <3 <4 <5 <必要 6 <7 <8 <9 <T <J <Q <K <A。
今、あなたは、神のように、あなたは小さなからのカードの大きな手に皆を並べ替え、およびフォローする出力形式を設定する必要があります。(特定の出力フォーマット記述と出力例を参照)。
入力:
含む複数のデータセット入力し
、各データセットの最初の行は、ディーラーはいを表し、大文字の文字が含まれています。文字は「#」であれば、入力の終わりを示します。
次の2行、行あたり52文字、ショー26枚のカードは、2行は52枚のカードの合計と一致し。各カードは、2つの文字からなり、最初の文字は色を表し、2番目の文字は値を示しています。
出力:
データの各セットは、余分な出力に空白行を必要とした後、ライセンス結果データの出力複数のセット!!!!!
データの各セットは、常に五行、第一及び第五のライン出力固定続いサウスプレーヤーの出力、選手名出力線(トラック)に、すなわち各選手に、時計回り方向の出力線24を構成しますフォーマット(例を参照)、出力値の順序と形式で2行目と4行目(例を参照)、3行出力カラーシーケンスの形式(例を参照)。
サンプル
入力
出力:
問題解決のアイデア:演奏テーブルのタイトルに加え、より複雑なソート。
コード:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
bool cmp(pair<char,char> a,pair<char,char> b)//排序,按照规则
{
if(a.first!=b.first)
{
if(a.first=='S'&&b.first=='H')
{
return true;
}
if(a.first=='H'&&b.first=='S')
{
return false;
}
return a.first<b.first;
}else
{
char a1=a.second,b1=b.second;
if('0'<=a1&&a1<='9'||'0'<=b1&&b1<='9')
{
return a1<b1;
}else
{
if(a1=='T'||(a1=='J'&&b1!='T')||(a1=='Q'&&b1!='T'&&b1!='J')||(a1=='K'&&b1=='A'))
{
return true;
}else
{
return false;
}
}
}
}
int main()
{
string a;
while(1)
{
cin>>a;
if(a=="#")break;
int t;
if(a=="S")t=0;
if(a=="W")t=1;
if(a=="N")t=2;
if(a=="E")t=3;
string t1,t2,h;
cin>>t1>>t2;
h=t1+t2;
vector<pair<char,char> > s[4];
for(int i=0,j=t;i<h.size();i+=2,j++)//顺时针给就+1,之后模4即可
{
int r=j+1;
r%=4;
s[r].push_back(make_pair(h[i],h[i+1]));
}
for(int i=0;i<4;i++)
{
sort(s[i].begin(),s[i].end(),cmp);
}
cout<<"South player:"<<endl;//按照规则输出
cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
for(int i=0;i<s[0].size();i++)
{
cout<<"|"<<s[0][i].second<<" "<<s[0][i].second;
}
cout<<"|"<<endl;
for(int i=0;i<s[0].size();i++)
{
cout<<"| "<<s[0][i].first<<" ";
}
cout<<"|"<<endl;
for(int i=0;i<s[0].size();i++)
{
cout<<"|"<<s[0][i].second<<" "<<s[0][i].second;
}
cout<<"|"<<endl;
cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
cout<<"West player:"<<endl;
cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
for(int i=0;i<s[1].size();i++)
{
cout<<"|"<<s[1][i].second<<" "<<s[1][i].second;
}
cout<<"|"<<endl;
for(int i=0;i<s[1].size();i++)
{
cout<<"| "<<s[1][i].first<<" ";
}
cout<<"|"<<endl;
for(int i=0;i<s[1].size();i++)
{
cout<<"|"<<s[1][i].second<<" "<<s[1][i].second;
}
cout<<"|"<<endl;
cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
cout<<"North player:"<<endl;
cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
for(int i=0;i<s[2].size();i++)
{
cout<<"|"<<s[2][i].second<<" "<<s[2][i].second;
}
cout<<"|"<<endl;
for(int i=0;i<s[2].size();i++)
{
cout<<"| "<<s[2][i].first<<" ";
}
cout<<"|"<<endl;
for(int i=0;i<s[2].size();i++)
{
cout<<"|"<<s[2][i].second<<" "<<s[2][i].second;
}
cout<<"|"<<endl;
cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
cout<<"East player:"<<endl;
cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
for(int i=0;i<s[3].size();i++)
{
cout<<"|"<<s[3][i].second<<" "<<s[3][i].second;
}
cout<<"|"<<endl;
for(int i=0;i<s[3].size();i++)
{
cout<<"| "<<s[3][i].first<<" ";
}
cout<<"|"<<endl;
for(int i=0;i<s[3].size();i++)
{
cout<<"|"<<s[3][i].second<<" "<<s[3][i].second;
}
cout<<"|"<<endl;
cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl<<endl;;
}
return 0;
}