1. 程式人生 > >1052 賣個萌(20 分)

1052 賣個萌(20 分)

萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的:

[左手]([左眼][口][右眼])[右手]

現給出可選用的符號集合,請你按使用者的要求輸出表情。

輸入格式:

輸入首先在前三行順序對應給出手、眼、口的可選符號集。每個符號括在一對方括號 []內。題目保證每個集合都至少有一個符號,並不超過 10 個符號;每個符號包含 1 到 4 個非空字元。

之後一行給出一個正整數 K,為使用者請求的個數。隨後 K 行,每行給出一個使用者的符號選擇,順序為左手、左眼、口、右眼、右手——這裡只給出符號在相應集合中的序號(從 1 開始),數字間以空格分隔。

輸出格式:

對每個使用者請求,在一行中輸出生成的表情。若使用者選擇的序號不存在,則輸出 Are you kidding me? @\/@

輸入樣例:

[╮][╭][o][~\][/~]  [<][>]
 [╯][╰][^][-][=][>][<][@][⊙]
[Д][▽][_][ε][^]  ...
4
1 1 2 2 2
6 8 1 5 5
3 3 4 3 3
2 10 3 9 3

輸出樣例:

╮(╯▽╰)╭
<(@Д=)/~
o(^ε^)o
Are you kidding me? @\/@
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;

void fenli(int &ssi,string s[10],string &shou){
	int shousi=shou.length();
	int sub;
	for(int i=0;i<shousi;++i){
			if(shou[i]=='['){
				for(int j=i+1;j<shousi;++j){
					if(shou[j]==']'){
						sub=j-i-1;
						if(sub>0){
							//cout<<shou.substr(i+1,sub)<<endl;
							s[ssi]=shou.substr(i+1,sub);
							++ssi;
						}
						i=j;
						break;
					}
				}
			}
		}
}

int main(){	
	while(1){
		string shou,yan,kou;
		getline(cin,shou);
		getline(cin,yan);
		getline(cin,kou);		
		string s[10],y[10],k[10];		
		int ssi=0,ysi=0,ksi=0;
		fenli(ssi,s,shou);
		fenli(ysi,y,yan);
		fenli(ksi,k,kou);
		
		int n;
		cin>>n;
		int s1,y1,k0,y2,s2;
		while(n--){
			cin>>s1>>y1>>k0>>y2>>s2;
			if(s1>ssi||s2>ssi||y1>ysi||y2>ysi||k0>ksi
				||s1<1||y1<1||k0<1||y2<1||s2<1){//內心無比奔潰,這個點卡了我半小時。。。"從1開始",還能<0???
				cout<<"Are you kidding me? @\\\/@"<<endl;
				continue;
			}
			--s1;--y1;--k0;--y2;--s2;
			cout<<s[s1]<<'('<<y[y1]<<k[k0]<<y[y2]<<')'<<s[s2]<<endl;				
		}


	}
}

相關推薦

PAT-乙-1052 1052 20

程式碼 #include <iostream> #include <vector> using namespace std; const int SIZE = 3; int main() { string s[SIZE];

1052 20 //部分正確

    1052 賣個萌 (20 分) 萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口][右眼])[右手] 現給出可選用的符號集合,請你按使用者的要求

1052 20 

萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口][右眼])[右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸入格式: 輸入首先在前三行順序對應給出手、眼、口的可選

PAT Basic 1052. (20)C語言實現

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設

【PAT】B1052 (20)

『題目』 萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手]([左眼][口][右眼])[右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸入格式: 輸入首先在前三行順序對應給出手、

PAT 1052 python非零返回

1052 賣個萌 (20 分) 萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的: [左手] ([左眼] [口] [右眼]) [右手] 現給出可選用的符號集合,請你按使用者的要求輸出表情。 輸入格式

7-15 兩有序鏈表序列的合並20

一行 htm text all color div 兩個 turn nbsp 已知兩個非降序鏈表序列S1與S2,設計函數構造出S1與S2的並集新非降序鏈表S3。 輸入格式: 輸入分兩行,分別在每行給出由若幹個正整數構成的非降序序列,用−1表示序列的結

【PAT】B1023 組最小數20

最小數 [1] ace pac 存儲位置 bool algorithm tdi include #include<stdio.h> #include<algorithm> using namespace std; struct number{

7-3 兩有序連結串列序列的合併 20

7-3 兩個有序連結串列序列的合併 (20 分) 已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2合併後的新的非降序連結串列S3。 輸入格式: 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−1表示序列的結尾(−1不屬於這個序列)。數字用空格間隔。 輸出格

PTA 陣列迴圈左移 (20 分) 本題要求實現一個對陣列進行迴圈左移的簡單函式:一個數組a中存有n>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向左移m≥0)個位置,即將a中的

陣列迴圈左移 (20 分) 本題要求實現一個對陣列進行迴圈左移的簡單函式:一個數組a中存有n(>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向左移m(≥0)個位置,即將a中的資料由(a​0​​a​1​​⋯a​n−1​​)變換為(a​m​​⋯a​n−

1023 組最小數 20

給定數字 0-9 各若干個。你可以以任意順序排列這些數字,但必須全部使用。目標是使得最後得到的數儘可能小(注意 0 不能做首位)。例如:給定兩個 0,兩個 1,三個 5,一個 8,我們得到的最小的數就是 10015558。 現給定數字,請編寫程式輸出能夠組成的最小的數。 輸入格式: 輸入

【問題求教】7-2 兩有序連結串列序列的交集 20

已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2的交集新連結串列S3。 輸入格式: 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−1表示序列的結尾(−1不屬於這個序列)。數字用空格間隔。 輸出格式: 在一行中輸出兩個輸入序列的交集序列

7-51 求n以內最大的k素數以及它們的和 20

7-51 求n以內最大的k個素數以及它們的和 (20 分) 本題要求計算並輸出不超過n的最大的k個素數以及它們的和。 輸入格式: 輸入在一行中給出n(10≤n≤10000)和k(1≤k≤10)的值。 輸出格式: 在一行中按下列格式輸出: 素數1+素數2+…+素數k

7-2 兩有序連結串列序列的合併 20

已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2合併後的新的非降序連結串列S3。 輸入格式: 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−表示序列的結尾(−不屬於這個序列)。數字用空格間隔。 輸出格式: 在一行中輸出合併後新的非降序連結串列,數字間用空格分開,結尾不能有

7-3 組最小數 20

#include <bits/stdc++.h> using namespace std; int main() { int a[50]; int n, i = 0, j = 0,

有序連結串列序列的合併 20

7-90 兩個有序連結串列序列的合併 (20 分) 已知兩個非降序連結串列序列S1與S2,設計函式構造出S1與S2合併後的新的非降序連結串列S3。 輸入格式: 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−1表示序列的結尾(−1不屬於這個序列)。數

PAT (Basic Level) Practice 中文1023 組最小數 20 C語言

1023 組個最小數 (20 分) 給定數字 0-9 各若干個。你可以以任意順序排列這些數字,但必須全部使用。目標是使得最後得到的數儘可能小(注意 0 不能做首位)。例如:給定兩個 0,兩個 1,三個 5,一個 8,我們得到的最小的數就是 10015558。 現給定數字,

最小數 20

給定數字0-9各若干個。你可以以任意順序排列這些數字,但必須全部使用。目標是使得最後得到的數儘可能小(注意0不能做首位)。例如:給定兩個0,兩個1,三個5,一個8,我們得到的最小的數就是10015558。 現給定數字,請編寫程式輸出能夠組成的最小的數。 輸入格式: 輸入在一行中給出10個

【PAT】1023 組最小數 20

1023 組個最小數 (20 分) 給定數字 0-9 各若干個。你可以以任意順序排列這些數字,但必須全部使用。目標是使得最後得到的數儘可能小(注意 0 不能做首位)。例如:給定兩個 0,兩個 1,三個 5,一個 8,我們得到的最小的數就是 10015558。 現給定數字,

練習7-4 找出不是兩陣列共有的元素 20 (靈活運用flage作為判斷條件

給定兩個整型陣列,本題要求找出不是兩者共有的元素。 輸入格式: 輸入分別在兩行中給出兩個整型陣列,每行先給出正整數N(≤20),隨後是N個整數,其間以空格分隔。 輸出格式: 在一行中按照數字給出的順序輸出不是兩陣列共有的元素,數字間以空格分隔,但行末不得有多餘的空格。題目保證至少存在