Pagini recente » Cod sursa (job #2919522) | Cod sursa (job #3241496) | Cod sursa (job #1624694) | Cod sursa (job #1397895) | Cod sursa (job #2767996)
#include <bits/stdc++.h>
#define __NAME_OF_THE_FILE__ "perle"
std::array<int, 10005> perls;
size_t checkB(size_t i);
size_t checkC(size_t i);
/*
B := 2B |
1A3AC
*/
size_t checkB(size_t i) {
if (perls[i] == 2) {
return checkB(i + 1);
}
if (perls[i] == 1) {
if (perls[i + 2] == 3) {
return checkC(i + 4);
}
}
return 0;
};
/*
C := 2 |
3BC |
12A
*/
size_t checkC(size_t i) {
if (perls[i] == 2) {
return i + 1;
}
if (perls[i] == 3) {
return checkC(checkB(i + 1));
}
if (perls[i] == 1) {
if (perls[i + 1] == 2) {
return i + 3;
}
}
return 0;
};
int main() {
freopen(__NAME_OF_THE_FILE__ ".in", "r", stdin);
#ifdef INFOARENA
freopen(__NAME_OF_THE_FILE__ ".out", "w", stdout);
#endif
// read the tests
size_t testCount;
scanf("%zu", &testCount);
while (testCount--) {
// read the perls
size_t perlsCount;
scanf("%zu", &perlsCount);
for (size_t i = 0; i < perlsCount; i++) {
scanf("%i", &perls[i]);
}
// solve the test
if (perlsCount == 1 || checkB(0) == perlsCount ||
checkC(0) == perlsCount) {
printf("1\n");
} else {
printf("0\n");
}
// reset the perls string
perls.fill(0);
}
return 0;
}