1052 卖个萌
Statement
Metadata
- 作者: CHEN, Yue
- 单位: 浙江大学
- 代码长度限制: 16 KB
- 时间限制: 400 ms
- 内存限制: 64 MB
萌萌哒表情符号通常由“手”、“眼”、“口”三个主要部分组成。简单起见,我们假设一个表情符号是按下列格式输出的:
现给出可选用的符号集合,请你按用户的要求输出表情。输入格式
输入首先在前三行顺序对应给出手、眼、口的可选符号集。每个符号括在一对方括号 []
内。题目保证每个集合都至少有一个符号,并不超过 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
输出样例
Solution
#include <bits/stdc++.h>
using namespace std;
struct pp {
string s[10];
} q[3];
int main() {
string s;
int i, j, k, l, len, tot[3] = {0};
for (i = 0; i < 3; i++) {
getline(cin, s);
// cout<<s<<endl;
len = s.size();
for (j = 0, l = 0; j < len; j++) {
if (s[j] == '[') {
// cout<<j<<endl;
for (k = j + 1; s[k] != ']'; k++) {
q[i].s[l] += s[k];
}
// cout<<q[i].s[l]<<endl;
l++;
j = k;
}
}
tot[i] = l;
// cout<<l<<endl;
}
int t;
cin >> t;
while (t--) {
s = "";
int n[5], flag = 1, a[5] = {0, 1, 2, 1, 0};
for (i = 0; i < 5; i++) cin >> n[i];
for (i = 0; i < 5; i++) {
n[i]--;
if (n[i] > tot[a[i]] - 1 || n[i] < 0) {
flag = 0;
// cout<<"1\n";
break;
} else {
s += q[a[i]].s[n[i]];
}
if (!i)
s += "(";
else if (i == 3)
s += ")";
}
if (flag)
cout << s << endl;
else
cout << "Are you kidding me? @\\/@\n";
}
}
Last update: May 4, 2022