Pagini recente » Cod sursa (job #2919784) | Cod sursa (job #717185) | Cod sursa (job #3288962) | Cod sursa (job #3200709) | Cod sursa (job #3241863)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1e4+2;
int t,n,v[NMAX],pos;
bool valid;
vector<string> posib[3];
ifstream fin("perle.in");
ofstream fout("perle.out");
void check(char ch){
bool found = false;
for(string unfold: posib[ch-'A']){
if(unfold[0]-'0' == v[pos]){
found = true;
for(char ch: unfold){
if(isdigit(ch)){
valid &= (ch-'0' == v[pos]);
pos++;
}else{
check(ch);
}
}
break;
}
}
valid &= found;
}
int main(){
posib[0] = {"1", "2", "3"};
posib[1] = {"2B", "1A3AC"};
posib[2] = {"2", "3BC", "12A"};
fin >> t;
while(t--){
fin >> n;
for(int i = 1; i <= n; i++){
fin >> v[i];
}
bool ans = false;
for(char ch: {'A', 'B', 'C'}){
if(!ans){
pos = 1;
valid = true;
check(ch);
ans |= (valid && pos == n+1);
}
}
fout << ans << "\n";
}
return 0;
}