Pagini recente » Cod sursa (job #1534432) | Cod sursa (job #69819) | Cod sursa (job #1645671) | Cod sursa (job #1154042) | Cod sursa (job #2840018)
#include <iostream>
#include <fstream>
#include <stack>
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
stack<int> stiva;
///A=1, B=2, C=3
int n,lungime;
char x[10010],test[10010];
int main()
{
int i,j,inStiva=0,sfStiva=0,indice,element;
bool ok;
f>>n;
for(i=1; i<=n; i++)
{
f>>lungime;
ok=0;
for(j=1; j<=lungime; j++)
f>>test[j];
if(lungime==1)
g<<'1'<<'\n';
else if(lungime==3&&test[1]=='1'&&test[2]=='1')
g<<'1'<<'\n';
else if(lungime==3)
g<<'0'<<'\n';
else
{
indice=1;
if(test[1]=='3')
{
stiva.push(3);
indice++;
}
else
{
stiva.push(2);
indice++;
}
ok=1;
inStiva=1;
while(!stiva.empty()&&ok==1&&indice<=lungime)
{
element=stiva.top();
stiva.pop();
/*if(i==2)
cout<<element<<' '<<test[indice]<<' '<<indice<<'\n';*/
if(element==2)
{
if(test[indice]=='2')
{
indice++;
stiva.push(2);
}
else if(test[indice]=='1'&&test[indice+2]=='3')
{
indice+=4;
stiva.push(3);
}
else ok=0;
}
else if(element==3)
{
if(test[indice]=='2')
indice++;
else if(test[indice]=='3')
{
stiva.push(3);
stiva.push(2);
indice++;
}
else if(test[indice]=='1'&&test[indice+1]=='2')
{
indice+=3;
}
else ok=0;
}
}
if(indice<lungime||!stiva.empty())
{
ok=0;
/*if(i==1)
cout<<inStiva<<' '<<sfStiva<<' '<<indice<<' '<<test[0]-48;*/
}
g<<ok<<'\n';
}
}
}