题目链接:点击打开链接
题目大意:略。
解题思路:
- 注意当中有越界的下标。
- 注意 “\\” 转义字符。
- 题目有些字符输出不了,没事,其他正常即可。
AC 代码
#include<bits/stdc++.h> #include<cmath> #define mem(a,b) memset(a,b,sizeof a); #define INF 0x3f3f3f3f #define MOD 1000000007 using namespace std; typedef long long ll; vector<string> v[5],tv; string ts; int main() { int n=3; string s; char c; for(int i=0;i<n;i++) { getline(cin,s); int len=s.length(); for(int i=0,f=0;i<len;i++) { c=s[i]; if(c==']') { f=0; tv.push_back(ts); ts.clear(); } if(f) ts.append(1,c); if(c=='[') f=1; } v[i]=v[n-i+1]=tv; tv.clear(); } // for(int i=0;i<5;i++) // { // for(int j=0;j<v[i].size();j++) // { // printf("%s ",v[i][j].c_str()); // } // puts(""); // } scanf("%d",&n); int a; while(n--) { int f=1; ts.clear(); for(int i=0;i<5;i++) { scanf("%d",&a); if(!f) continue; if(a>v[i].size() || a<=0){f=0; continue;} if(i==1) ts.append(1,'('); ts.append(v[i][a-1]); if(i==3) ts.append(1,')'); } if(!f) puts("Are you kidding me? @\\/@"); else printf("%s\n",ts.c_str()); } return 0; }