Pagini recente » Clasamentul arhivei Infoarena Monthly | Cei mai harnici utilizatori info-arena | Cei mai harnici utilizatori info-arena | Cod sursa (job #2963185) | Cod sursa (job #2513474)
#include <fstream>
using namespace std;
ifstream cin("perle.in");
ofstream cout("perle.out");
/*A -> 1 | 2 | 3 (l=1)
B -> 2B | 1A3AC
C -> 2 | 3BC | 12A
*/
int l, v[10004], i;bool k;
void b();
void c();
void start();
int main()
{
int n;
cin >> n;
while(n--)
{
cin >> l;
k = 1;
for(i = 1; i <= l; ++i)
cin >> v[i];
start();
if(k)
cout << 1 << '\n';
else
cout << 0 << '\n';
// cout << i << '\n';
}
return 0;
}
void b()
{
if(i > l)
return;
if(v[i] == 2)
{++i; b();}
else if(v[i] == 1 && v[i + 2] == 3)
{i += 4; c();}
else k = 0;
}
void c()
{
if(v[i] == 2)
return;
if(v[i] == 1 && v[i + 1] == 2)
{i += 2; return;}
if(v[i] == 3)
{++i;b(); ++i;c();}
else
k = 0;
}
void start()
{
if(l == 1)
return;
i = 1;
if(v[i] == 1)
{
if(l == 3)
c();
else
b();
}
else if(v[i] == 2)
b();
else
c();
if(i != l)
k = 0;
}