Pagini recente » Cod sursa (job #1857917) | Cod sursa (job #66099) | Cod sursa (job #818548) | Cod sursa (job #1573131) | Cod sursa (job #2927666)
#include <iostream>
#include <fstream>
#define MAX 10003
using namespace std;
int q,n,v[MAX];
ifstream fin("perle.in");
ofstream fout("perle.out");
bool good(string s){
/**
B -> 2B | 1A3AC
C -> 2 | 3BC | 12A
**/
for(int i = 0; i < s.size(); i++){
if(s[i] == 'A'){
s[i] = (v[i]+'0');
}else if(s[i] == 'B'){
s.erase(i, 1);
if(v[i] == 1){
s.insert(i, "1A3AC");
}else if(v[i] == 2){
s.insert(i, "2B");
}
}else if(s[i] == 'C'){
s.erase(i, 1);
if(v[i] == 1){
s.insert(i, "12A");
}else if(v[i] == 2){
s.insert(i, "2");
}else if(v[i] == 3){
s.insert(i, "3BC");
}
}
if(s[i] != (v[i]+'0') || s.size() > n){
return false;
}
}
return (s.size() == n);
}
void solve(){
fin >> n;
for(int i = 0; i < n; i++){
fin >> v[i];
}
if(n == 1){
fout << "1\n";
return;
}
fout << (good("B") || good("C")) << "\n";
}
int main()
{
cin >> q;
while(q--){
solve();
}
return 0;
}