1052売り孟(20点)
絵文字ピリダジンMengmengは通常、「手」、「目」の3つの主要部分の「口」が構成されています。:簡単にするために、我々は記号式は、次の形式で出力されていると
[左]([左]、[ポート]、[右])[右]
今、シンボルのオプションのセットが指定されてください出力、ユーザーの要件表現。
入力フォーマット:
入力前のショットの最初の3行に対応するため、選択可能なシンボルセット目、口。内の角括弧[]で囲まれた各シンボル。各セットは、少なくとも1つのシンボルを持っていることを確認してくださいタイトル、シンボルは、10以上のではなく、各シンボルは、1つから4つのnull以外の文字が含まれています。
線は、正の整数K、ユーザ要求の数が与えられた後。各ユーザは、シンボルの選択が与えられ、次いでK行、左手のため、左眼、口、目、手-ちょうどそれぞれのセット(1から始まる)内のシンボル数を与えるために、数字の間の空間分離しました。
出力形式:
出力ライン式に生成された各ユーザーの要求。ユーザーが選択は、シリアル番号が存在しない場合は、出力が、あなたは私をからかっていますか?@ / @ 。
サンプル入力
:[╮] [╭] [O] [ ] [/ ] [<] [>]
[╯] [╰] [^] [ - ] [=] [>] [<] [@] [⊙ ]
[Д] [▽へ] [_] [イプシロン] [^] ...
4。
1 1 2 2 2。
6. 8 1. 5.5。
3. 3. 4. 3. 3。
2 9 3 10 3
出力サンプル:
╮(╯▽に╰)╭
< (Д= @)/〜
O(εの)O
私をからかってるの?@ / @
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<vector<string> > v; //用二维数组来存每对方括号内的符号
for(int i=0;i<3;i++) {
string s;
getline(cin, s); //因为有空格故用getline输入
vector<string> row; //存一行符号集
int j = 0, k = 0;
while(j < s.length()) { //遍历一行字符串找出所有的符号
if(s[j] == '[') {
while(k++ < s.length()) {
if(s[k] == ']') {
row.push_back(s.substr(j+1, k-j-1));//每个符号
break;
}
}
}
j++;
}
v.push_back(row);//放入一行符号集
}
int n;
cin >> n;
for(int i = 0; i < n; i++) {
int a, b, c, d, e;
cin >> a >> b >> c >> d >> e;
if(a>v[0].size()||b>v[1].size()||c>v[2].size()||d>v[1].size()||e>v[0].size()||a < 1||b<1||c<1||d<1||e<1){
cout << "Are you kidding me? @\\/@" << endl; //这里的\输出的时候要\\
continue;
}
cout << v[0][a-1] << "(" << v[1][b-1] << v[2][c-1] << v[1][d-1] << ")" << v[0][e-1] << endl;
}
return 0;
}