Cod sursa(job #735983)

Utilizator TudorDDodoiu Tudor TudorD Data 17 aprilie 2012 17:00:29
Problema Perle Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
using namespace std;
const int N=10009;
int v[N],n,D;
char s[3*N];
ifstream in("perle.in");
ofstream out("perle.out");
int B(int),C(int);
int B(int x)
{
if (x>n)
return 0;
if (v[x]==2)
return B(x+1);
if (x+3<n && v[x]==1 && v[x+2]==3)
return C(x+4);
return 0;
}
int C(int x)
{
if (x+1<n && v[x]==1 && v[x+1]==2)
return x+3;
if (v[x]==2)
return x+1;
if (v[x]!=3)
return 0;
x=B(x+1);
if (!x)
return 0;
return C(x);
}
bool rez()
{
if (n<3)
return n==1;
return B(1)>=n || C(1)>=n;
}
int main()
{
int t,x;
in>>t;
while (t--)
{
in>>n;
for (int i=1;i<=n;i++)
in>>v[i];
out<<rez()<<"\n";
}
return 0;
}