Pagini recente » Cod sursa (job #2483943) | Cod sursa (job #1068832) | Cod sursa (job #2393371) | Cod sursa (job #2871840) | Cod sursa (job #1597767)
#include <fstream>
using namespace std;
int c(int *v, int pos);
int b(int *v, int pos)
{
if (v[pos] == 2)
{
return b(v, pos + 1);
}
if (v[pos] == 1 && v[pos + 2] == 3)
{
return c(v, pos + 4);
}
return false;
}
int c(int *v, int pos)
{
if (v[pos] == 3)
{
return c(v, b(v, pos + 1));
}
else if (v[pos] == 2)
{
return pos + 1;
}
else if (v[pos] == 1 && v[pos + 1] == 2)
{
return pos + 3;
}
return pos;
}
int check(int *v, int l)
{
int result = 0;
if (l == 1)
{
if (v[l] == 1 || v[l] == 2 || v[l] == 3)
{
result = 1;
}
}
else
{
result = b(v, 1) == l +1 || c(v, 1) == l + 1;
}
return result;
}
int main()
{
int n, V[10002], L;
ifstream f("perle.in");
ofstream g("perle.out");
f >> n;
for (int i = 1; i <= n; i++)
{
f >> L;
for (int j = 1; j <= L; j++)
{
f >> V[j];
}
g << check(V, L) << "\n";
}
f.close();
g.close();
return 0;
}