Pagini recente » Cod sursa (job #2925341) | Cod sursa (job #3262645) | Cod sursa (job #2988634) | Cod sursa (job #3210519)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("perle.in");
ofstream fout ("perle.out");
int A(), B(), C(), n, m, i;
int v[10001];
int A()
{
if(i == n+1) return 0;
//cout << v[i];
if(v[i] == 1 || v[i] == 2 || v[i] == 3)
{
i++;
return 1;
}
else
return 0;
}
int B()
{
if(i == n+1) return 0;
if(v[i] == 2)
{
i++;
return B();
}
else
{
if(v[i] == 1)
{
i++;
int x = A();
if(x == 0) return 0;
if(v[i] != 3) return 0;
i++;
x = A();
if(x == 0) return 0;
return C();
}
else return 0;
}
}
int C()
{
if(i == n+1) return 0;
if(v[i] == 2)
{
i++;
return 1;
}
else
if(v[i] == 1)
{
i++;
if(v[i]!=2)
{
i++;
return 0;
}
else
{
i++;return A();
}
}
else
{
if(v[i]!=3) return 0;
i++;
int x = B();
if(x == 0) return 0;
return C();
}
}
int main()
{
fin >> n;
for(int k = 1; k<=n; k++)
{
i = 1; int z = 0;
fin >> m;
for(int j = 1; j<=m; j++)fin >> v[j];
int val = A();
if(val == 1 && i == m+1)
{
fout << "1\n";
z = 1;
}
i = 1;
val = B();
if(val == 1 && i == m+1)
{
fout << "1\n";
z = 1;
}
i = 1;
val = C();
if(val == 1 && i == m+1)
{
fout << "1\n";
z = 1;
}
if(z == 0) fout << "0\n";
}
return 0;
}