孟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
あなたは私をからかっています@ / @ V?
ソリューションの概要:複合入力、最初の行によってCINリード線と、シンボルに格納されたベクトルを読み取るために、最後のシンボルベクトルから読み取る必要があり、出力することができ
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main(){
string line;
int num = 0;
vector<vector<string>> s;
for (int i = 0; i < 3; i++){
getline(cin, line);
vector<string> x;
int j = 0,k=0;
while (j < line.length()){
if (line[j] == '['){
while (k++ < line.length()){
if (line[k] == ']'){
x.push_back(line.substr(j+1,k-1-j));
break;
}
}
}
j++;
}
s.push_back(x);
}
cin >> num;
for (int i = 0; i < num; i++){
int l_hand = 0, l_eye = 0, m = 0, r_eye = 0, r_hand = 0;
cin >> l_hand >> l_eye >> m >> r_eye >> r_hand;
if (l_hand > s[0].size() || l_eye > s[1].size() || m > s[2].size() || r_eye > s[1].size() || r_hand > s[0].size() || l_hand<1 || l_eye<1 || m<1 || r_hand<1 || r_eye<1){
cout << "Are you kidding me? @\\/@"<< endl;
}
else{
cout << s[0][l_hand - 1] <<"("<< s[1][l_eye-1] << s[2][m-1] << s[1][r_eye-1] <<")" << s[0][r_hand-1] << endl;
}
}
return 0;
}