要注意输出“Are you kidding me? @\/@”时,在双引号中表示‘\’要用双斜杠表示,否则会出错。
#include <iostream>
#include <vector>
using namespace std;
vector<string> extract(string s) {
vector<string> v;
string ss = "";
int flag = 0;
for(int i = 0; i < s.length(); i++) {
if(s[i] == '[') {
flag = 1;
} else if(s[i] == ']') {
flag = 0;
v.push_back(ss);
ss = "";
} else {
if(flag) {
ss += s[i];
}
}
}
return v;
}
int main() {
string shou, yan, kou;
vector<string> vs, vy, vk;
getline(cin, shou);
vs = extract(shou);
getline(cin, yan);
vy = extract(yan);
getline(cin, kou);
vk = extract(kou);
int n;
cin >> n;
for (int i = 0; i < n; i++) {
int num[5];
cin>> num[0] >> num[1] >> num[2] >> num[3] >> num[4];
if (num[0] > vs.size() || num[0] < 1 || num[4] > vs.size() || num[4] < 1 || num[1] > vy.size()|| num[1] < 1 || num[3] > vy.size() || num[3] < 1 || num[2] > vk.size() || num[2] < 1) {
cout << "Are you kidding me? @\\/@" << endl;
continue;
}
cout << vs[num[0] - 1] + "(" + vy[num[1] - 1] + vk[num[2] - 1] + vy[num[3] - 1] + ")"+ vs[num[4] - 1] << endl;
}
return 0;
}