Pagini recente » Cod sursa (job #3349779) | Cod sursa (job #3335582) | Cod sursa (job #3327201) | Cod sursa (job #3314532) | Cod sursa (job #3332018)
#include <fstream>
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
int n, i, v[10010];
bool rez;
bool A();
bool B();
bool C();
bool A()
{
if(i > n) return 0;
if(v[i] == 1 || v[i] == 2 || v[i] == 3)
{
i++;
return 1;
}
return 0;
}
bool B()
{
if(i > n || v[i] == 3)
return 0;
if(v[i] == 2)
{
i++;
return B();
}
else
if (v[i] == 1)
{
i++;
bool aux = A();
if(aux == 0 || v[i] != 3)
return 0;
i++;
aux = A();
if(aux == 0)
return 0;
return C();
}
return 0;
}
bool C()
{
if(i > n) return 0;
if(v[i] == 2)
{
i++;
return 1;
}
else
if(v[i] == 1)
{
i++;
if(v[i] != 2)
{
i++;
return 0;
}
else
{
i++;
return A();
}
}
else
{
i++;
bool aux = B();
if(aux == 0)
return 0;
return C();
}
}
int main()
{
int T;
f >> T;
while(T--)
{
f >> n;
for(i = 1; i <= n; i++)
f >> v[i];
//
rez = 0;
//
i = 1;
rez = A();
if(rez == 1 && i == n + 1)
{
g << "1\n";
continue;
}
//
i = 1;
rez = B();
if(rez == 1 && i == n + 1)
{
g << "1\n";
continue;
}
//
i = 1;
rez = C();
if(rez == 1 && i == n + 1)
{
g << "1\n";
continue;
}
g << "0\n";
}
f.close();
g.close();
return 0;
}