Pagini recente » Cod sursa (job #2227286) | Cod sursa (job #1507843) | Cod sursa (job #1336136) | Cod sursa (job #2502344) | Cod sursa (job #1552421)
#include <fstream>
using namespace std;
int L[10010], n, T, i, r;
int A(), B(), C();
int A() {
if (i>n)
return 0;
i++;
return 1;
}
int B() {
if (i > n) {
return 0;
}
if (L[i] == 3) {
i++;
return 0;
}
if (L[i] == 2) {
i++;
return B();
}
if (L[i] == 1 && L[i+2] == 3) {
i++;
if (!A())
return 0;
i++;
if (!A())
return 0;
if (!C())
return 0;
return 1;
} else
return 0;
}
int C() {
if (i > n)
return 0;
if (L[i] == 2) {
i++;
return 1;
}
if (L[i] == 1) {
if (L[i+1] == 2) {
i+=2;
return A();
} else
return 0;
}
if (L[i] == 3) {
i++;
if (!B())
return 0;
if (!C())
return 0;
return 1;
}
}
ifstream fin ("perle.in");
ofstream fout("perle.out");
int main () {
fin>>T;
for (;T--;) {
fin>>n;
for (i=1;i<=n;i++)
fin>>L[i];
i = 1;
r = A();
if (i > n && r) {
fout<<1<<"\n";
continue;
}
i=1;
r = B();
if (i > n && r) {
fout<<1<<"\n";
continue;
}
i=1;
r = C();
if (i > n && r) {
fout<<1<<"\n";
continue;
}
fout<<0<<"\n";
}
return 0;
}