//杭电的一道月赛题,当时也做过了 //第一次提交用c++写,虽然过了,但感觉效率好低,然后用c重写了一遍。。。 #include <stdio.h> #include <string.h> int main() { char a[100]; int p,d,n,x,sum,m; scanf("%d",&p); while(p--) { sum = 0; scanf("%d",&d); getchar(); gets(a); scanf("%d",&n); printf("%d ",d); m = strlen(a); while(n--) { scanf("%d",&x); sum = sum + x; if(sum < 0) sum = sum + m; else if(sum >= m) sum = sum % m; printf("%c",a[sum]); } printf("\n"); } return 0; } #include <iostream> #include <string> using namespace std; int main() { string a; int p,d,n,x,i,sum; cin >> p; while(p--) { sum = 0; (cin >> d).get(); getline(cin,a); cin >> n; cout << d << ' '; for(i = 0; i < n ; ++i) { cin >> x; sum = sum + x; if(sum < 0) sum = sum + a.length(); else if(sum >= a.length()) sum = sum - a.length(); cout << a[sum]; } cout << endl; } return 0; }