坑点,输入数字可能为负需要控制
#include<iostream>
#include<string>
#include<cstring>
#include<vector>
#include<cstdio>
using namespace std;
string print(string s,int q)
{
vector<string> vi;
string str0="";
int flag=0;
for(int i=0; i<s.length(); i++)
{
if(s[i]=='[')
{
flag=1;
continue;
}
if(s[i]==']')
{
flag=0;
vi.push_back(str0);
str0="";
}
if(flag==1)
{
str0+=s[i];
}
}
if(vi.size()<q||vi.size()==0)
return "error";
else
return vi[q-1];
}
int main()
{
string str1,str2,str3;
int count,t[6];
getline(cin,str1);
getline(cin,str2);
getline(cin,str3);
cin>>count;
for(int i=0; i<count; i++)
{
for(int j=0; j<5; j++)
{
cin>>t[j];
// scanf("%d",&t[j]);
}
if(t[0]<0||t[1]<0||t[2]<0||t[3]<0||t[4]<0)
{
cout<<"Are you kidding me? @\\/@"<<endl;
}
else
{
if(print(str1,t[0])=="error"||print(str2,t[1])=="error"||print(str3,t[2])=="error"||print(str2,t[3])=="error"||print(str1,t[4])=="error")
{
cout<<"Are you kidding me? @\\/@"<<endl;
}
else
{
cout<<print(str1,t[0])+'('+ print(str2,t[1])+print(str3,t[2])+print(str2,t[3])+')'+print(str1,t[4])<<endl;
}
}
}
}