Cod sursa(job #2840607)
Utilizator | Popescu Gabriela Irina gabriela15 | Data | 28 ianuarie 2022 14:34:36 |
---|---|---|---|
Problema | Perle | Scor | 30 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 2.48 kb |
#include <iostream>
#include <fstream>
#define NMAX 10000
using namespace std;
ifstream fin("perle.in");
ofstream fout("perle.out");
int s[2][NMAX + 10];
int main()
{
int t, l, v, i;
int a[2];
int val[2];
fin >> t;
while(t--)
{
fin >> l;
if(l==1)
{
fin >> l;
fout << 1 << endl;
}
else
{
val[1]=val[0]=1;
a[1]=a[0]=1;
s[0][0]=5;
s[1][0]=6;
while (l--)
{
fin >> v;
for(i=0; i<2; i++)
{
if(val[i])
{
if(s[i][a[i]-1]<4)
{
if(s[i][--a[i]]==v)
val[i]=1;
else
val[i]=0;
break;
}
if(s[i][a[i]-1]==4)
{
a[i]--;
break;
}
if(s[i][a[i]-1]==5)
{
if(v==3)
val[i]=0;
if(v==1)
{
a[i]--;
s[i][a[i]++]=6;
s[i][a[i]++]=4;
s[i][a[i]++]=3;
s[i][a[i]++]=4;
}
break;
}
if(v==2)
a[i]--;
if(v==1)
{
a[i]--;
s[i][a[i]++]=4;
s[i][a[i]++]=2;
}
if(v==3)
{
a[i]--;
s[i][a[i]++]=6;
s[i][a[i]++]=5;
}
}
if(!a[i] && l)
val[i]=0;
}
}
if((a[0]==0 && val[0]==1) || (a[1]==0 && val[1]==1))
fout << 1 << endl;
else
fout << 0 << endl;
}
}
return 0;
}