Click
Here to go back to the homepage.
The Grand Adventure Solution:
#include <bits/stdc++.h>
using namespace std;
int main(){
// #ifndef TESTING
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
// #endif
string line;
getline(cin, line);
int nCases = stoi(line);
nextJourney:
while(nCases--){
stack<char> backpack;
getline(cin, line);
stringstream ss(line);
bool good = true;
char c;
while(ss >> c){
switch(c){
case '$':
backpack.push('$');
break;
case '|':
backpack.push('|');
break;
case '*':
backpack.push('*');
break;
case 't':
if(backpack.size() == 0 || backpack.top() != '|'){
good = false;
} else {
backpack.pop();
}
break;
case 'j':
if(backpack.size() == 0 || backpack.top() != '*'){
good = false;
} else {
backpack.pop();
}
break;
case 'b':
if(backpack.size() == 0 || backpack.top() != '$'){
good = false;
} else {
backpack.pop();
}
break;
default:
break;
}
if(!good){
break;
}
}
if(!good || backpack.size() != 0){
cout << "NO" << endl;
} else {
cout << "YES" << endl;
}
}
return 0;
}