Pagini recente » Cod sursa (job #200651) | Cod sursa (job #946675) | Cod sursa (job #1061871) | Cod sursa (job #1808617) | Cod sursa (job #1372317)
#include <fstream>
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
int X[10000];
int p;
bool ki;
bool megold_b();
bool megold_c();
int n;
int main()
{
int N, j;
f >> N;
int i;
for (i = 0; i < N; i++)
{
f >> n;
for (j = 0; j < n; j++)
{
f >> X[j];
}
p = 0;
if (n != 1)
{
ki = false;
if (megold_b())
g << "1\n";
else
{
p = 0;
if (megold_c())
g << "1\n";
else
g << "0\n";
}
}
else
g << "1\n";
}
return 0;
}
bool megold_b()
{
//cout << p << " b " << X[p] << "\n";
if (p >= n)
return false;
if (X[p] == 2)
{
p++;
return megold_b();
}
if (X[p] == 1)
{
if (X[p + 2] != 3)
return false;
p += 4;
return megold_c();
}
return false;
}
bool megold_c()
{
//cout << p << " c " << X[p] << "\n";
if (p >= n)
return false;
if (X[p] == 1)
{
if (X[p + 1] != 2)
{
return false;
}
p += 2;
if (p == n - 1)
return true;
else
{
return false;
}
}
if (X[p] == 2)
{
p++;
if (p == n - 1)
return true;
else
{
return false;
}
}
if (X[p] == 3)
{
bool ki1, ki2;
p++;
ki1 = megold_b();
p++;
ki2 = megold_c();
return (ki2);
}
return false;
}