Pagini recente » Cod sursa (job #2549563) | Cod sursa (job #3248607) | Cod sursa (job #2633591) | Cod sursa (job #3220973) | Cod sursa (job #2555442)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("perle.in");
ofstream out("perle.out");
int n, x ,w;
int s[10001];
bool C();
bool A()
{
if (x == w)
{
return false;
}
if (s[x] == 1 || s[x] == 2 || s[x] == 3)
{
x++;
return true;
}
else
{
return false;
}
}
bool B()
{
if (x == w)
{
return false;
}
if (s[x] == 2)
{
x++;
return B();
}
else if (s[x] == 1)
{
x++;
bool k = false;
k = A();
if (!k)
return false;
if (s[x] != 3)
return false;
k = A();
if (!k)
return false;
return C();
}
else
{
return false;
}
}
bool C()
{
if (x == w)
{
return false;
}
if (s[x] == 2)
{
x++;
return true;
}
else if (s[x] == 3)
{
x++;
bool k = false;
k = B();
if (!k)
return false;
return C();
}
else
{
x++;
if (s[x] != 2)
{
return false;
}
x++;
return A();
}
}
int main()
{
in >> n;
for (int q = 0; q < n; q++)
{
in >> w;
for (int i = 0; i < w; i++)
{
in >> s[i];
}
bool g = false;
if (A() && x == w)
{
g = true;
}
else
{
x = 0;
}
if (B() && x == w && g == false)
{
g = true;
}
else
{
x = 0;
}
if (C() && x == w && g == false)
{
g = true;
}
else
{
x = 0;
}
}
}