Nu aveti permisiuni pentru a descarca fisierul grader_test3.in
Cod sursa(job #2129969)
Utilizator | Data | 13 februarie 2018 12:17:49 | |
---|---|---|---|
Problema | Perle | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.46 kb |
#include <stack>
#include <fstream>
#include <iostream>
using namespace std;
int i,n,t,nr;
char s[10000];
stack<char> sp;
#define B 1
#define C 2
int main()
{
fstream f("perle.in",ios::in),g("perle.out",ios::out);
f>>t;
while(t--)
{
f>>n;
for(i=0;i<n;i++){f>>nr;s[i]=nr;}
while(!sp.empty())sp.pop();
if(n==1){g<<"1\n";continue;}
if(s[0]==2)sp.push(B);
i=1;
while(i<n)
{
if(sp.top()==B)
{
if(s[i]==2){i++;continue;}
if(s[i]==1)
{
if(s[i+2]!=3)break;
i+=4;
sp.pop();
sp.push(C);
}
}
if(sp.top()==C)
{
if(s[i]==2)
{
if(i!=n-1)break;
sp.pop();
i++;
}
else if(s[i]==3)
{
sp.pop();
sp.push(C);
sp.push(B);
i++;
}
else if(s[i]==1)
{
if(i>n-3)break;
if(i!=n-3||s[i+1]!=2)break;
sp.pop();
i+=3;
}
}
}
if(sp.empty())g<<"1\n";
else g<<"0\n";
}
}