문제
링크
풀이
#include <iostream>
#include <string>
#include <deque>
using namespace std;
void solve(void) {
string p, s;
int n, x = 0;
cin >> p;
cin >> n;
cin >> s;
deque<int> dq;
for (int i=0; i<s.size(); i++) {
if (s[i] == '[' || s[i] == ']') continue;
if (s[i] != ',') x = x*10 + s[i]-'0';
else {
dq.push_back(x);
x = 0;
}
}
if (s.size() > 2) dq.push_back(x);
bool rev = false;
for (int i=0; i<p.size(); i++) {
if (p[i] == 'R') rev = !rev;
else {
if (dq.empty()) {
cout << "error\n";
return;
}
if (rev) dq.pop_back();
else dq.pop_front();
}
}
cout << "[";
for (int i=0; i<dq.size(); i++) {
cout << (rev ? dq[dq.size()-i-1] : dq[i]);
if (i != dq.size()-1) cout << ",";
}
cout << "]\n";
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while (t--) {
solve();
}
return 0;
}