Pagini recente » Cod sursa (job #795308) | Cod sursa (job #450996) | Cod sursa (job #546206) | Cod sursa (job #815261) | Cod sursa (job #2323793)
#include <fstream>
#define DIM 100002
using namespace std;
ifstream in ("perle.in");
ofstream out("perle.out");
int tests, n, pos, result;
int pearl[DIM];
int A(){
++ pos;
return pos;
}
//B -> 2B | 1A3AC
int B();
//C -> 2 | 3BC | 12A
int C();
int main(int argc, const char * argv[]) {
in>>tests;
while(tests --){
in>>n;
for(int i = 1; i <= n; ++ i){
in>>pearl[i];
}
pos = 1;
int ok = 0;
result = A();
if(result == n + 1)
ok = 1;
pos = 1;
result = B();
if(result == n + 1)
ok = 1;
pos = 1;
result = C();
if(result == n + 1)
ok = 1;
out<<ok<<'\n';
for(int i = 1; i <= n; ++ i){
pearl[i] = 0;
}
}
return 0;
}
int B(){
if(pearl[pos] == 2){
++ pos;
return B();
}
if(pearl[pos] == 1 && pearl[pos + 2] == 3){
pos += 4;
return C();
}
return false;
}
//C -> 2 | 3BC | 12A
int C(){
if(pearl[pos] == 2){
++ pos;
return pos;
}
if(pearl[pos] == 3){
++ pos;
B();
return C();
}
if(pearl[pos] == 1 && pearl[pos + 1] == 2){
pos += 3;
return pos;
}
return false;
}