Pagini recente » Cod sursa (job #517441) | Cod sursa (job #821588) | Cod sursa (job #875257) | Teorema chineza a resturilor - generalizari si aplicatii | Cod sursa (job #2437383)
#include <fstream>
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int v[10100], n, t, k, ok;
void A();
void B();
void C();
void A()
{
if(k==n+1) ok=0;
k++;
}
void B()
{
if(k==n+1) ok=0;
if(v[k]==2&&k!=n) k++, B();
else if(v[k]==1&&v[k+2]==3) k+=4, C();
}
void C()
{
if(k==n+1) ok=0;
if(v[k]==2) k++;
else if(v[k]==3) k++, B(), C();
else if(v[k]==1&&v[k+1]==2) k+=2, A();
}
void getStart()
{
if(n==1) A();
else if(v[1]==2||(v[1]==1&&n!=3)) B();
else C();
}
int main()
{
fin>>t;
while(t--)
{
fin>>n;
k=1;
ok=1;
for(int i=1;i<=n;i++) fin>>v[i];
getStart();
if(k == n+1 && ok) fout<<1<<'\n';
else fout<<0<< '\n';
}
return 0;
}