Pagini recente » Cod sursa (job #1976721) | Cod sursa (job #2237189) | Istoria paginii utilizator/naomitranca | Cod sursa (job #202519) | Cod sursa (job #1060006)
#include <fstream>
#define in "perle.in"
#define out "perle.out"
#define Max_Size 10009
std :: ifstream f(in);
std :: ofstream g(out);
int T, N, idx;
int A[Max_Size];
inline void Read_Data()
{
f >> N;
for(int i = 1; i <= N; ++i) f >> A[i];
}
int B();
int C();
int C()
{
if(A[idx] == 2 && idx <= N)
{
++idx;
return 1;
}
if(A[idx] == 3)
{
++idx;
if(B() && idx <= N) return C();
}
if(A[idx] == 1 && A[idx + 1] == 2 && idx + 2 <= N)
{
idx += 3;
return 1;
}
return 0;
}
int B()
{
if(A[idx] == 2)
{
++idx;
if(idx <= N) return B();
}
if(A[idx] == 1 && A[idx + 2] == 3 && idx + 4 <= N)
{
idx += 4;
return C();
}
return 0;
}
int Solve()
{
if(N == 1) return 1;
if(A[idx] == 2 || (A[idx] == 1 && A[idx + 2] == 3 && N >= 5)) return B();
return C();
}
int main()
{
f >> T;
while(T --)
{
Read_Data();
idx = 1;
g << Solve() << '\n';
}
g.close();
return 0;
}