Pagini recente » Cod sursa (job #457733) | Cod sursa (job #2066007) | Cod sursa (job #200789) | Cod sursa (job #243644) | Cod sursa (job #2153980)
#include <fstream>
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
void read()
{
f >> n ;
for ( int i = 1 ; i <= n ; i ++ )
f >> v[i];
}
// A -> 1 | 2 | 3
// B -> 2B | 1A3AC
// C -> 2 | 3BC | 12A
void rezC();
void rezA()
{
if(pos!=0)
pos++;
}
void rezB()
{
if(pos==0)
return;
if(v[pos]==2)
{
pos++;
rezB();
}
else
if(v[pos]==1)
{
rezA();
pos++;
if ( pos != 3 )
{
pos=0;
return;
}
rezA();
rezC();
}
else
pos=0;
}
void rezC()
{
if(v[pos]==2)
pos++;
else
if(v[pos]==3)
{
rezA();
rezB();
}
else
}
void solve()
{
bool ok=0;
pos=1;rezA();
if(pos==n+1)
ok=1;
pos=1;rezB();
if(pos==n+1)
ok=1;
pos=1;rezC();
if(pos==n+1)
ok=1;
g << ok << '\n';
}
int main()
{
for ( f >> t ; t ; t--)
{
read();
solve();
}
return 0;
}