PAT Bブラシ道路売り孟(20ポイント)への1052タイトル

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;
}

公開された73元の記事 ウォンの賞賛0 ビュー537

おすすめ

転載: blog.csdn.net/derbi123123/article/details/103793285