Pagini recente » Cod sursa (job #1576032) | Arhiva de probleme | Cod sursa (job #2330189) | Cod sursa (job #997344) | Cod sursa (job #2000765)
#include<bits/stdc++.h>
using namespace std;
ifstream in("perle.in");
ofstream out("perle.out");
const int NMAX = 10005;
int v[NMAX],N;
int solve_b(int poz);
int solve_c(int poz);
void read()
{
in>>N;
for(int i = 1 ; i <= N ; ++i)
in>>v[i];
for(int i = N + 1 ; i <= NMAX - 5 ; ++i)
v[i] = 0;
}
int solve_b(int poz)
{
if(v[poz] == 2)
return solve_b(poz + 1);
else if(v[poz] == 1 && v[poz + 2] == 3)
return solve_c(poz + 4);
return 0;
}
int solve_c(int poz)
{
if(v[poz] == 2)
return poz + 1;
else if(v[poz] == 3)
return solve_c(solve_b(poz + 1));
else if(v[poz] == 1 && v[poz+1] == 2)
return poz + 3;
return 0;
}
void solve()
{
if(N == 1){
out<<1<<"\n";
return;
}
int sol1 = solve_b(1);
int sol2 = solve_c(1);
if(sol1 == N + 1 || sol2 == N + 1)
out<<1<<"\n";
else
out<<0<<"\n";
}
int main()
{
int T;
in>>T;
for( ; T ; --T)
{
read();
solve();
}
return 0;
}