Pagini recente » Cod sursa (job #1607648) | Cod sursa (job #196833) | Cod sursa (job #474370) | Cod sursa (job #3263543) | Cod sursa (job #2217964)
#include <iostream>
#include <fstream>
#define MAX 10010
using namespace std;
int t,n;
int a[MAX];
string s,sa;
bool rez(string s){
for(int i=0;i<(int)s.size();i++){
if(s.size()>n)return 0;
if(s[i]>='1'&&s[i]<='3')
if(s[i]-'0'!=a[i])return 0;
if(s[i]=='A'){
sa=a[i]+'0';
s.replace(i,1,sa);
} else if(s[i]=='B'){
if(a[i]==1)sa="1A3AC";
else if(a[i]==2)sa="2B";
else return 0;
s.replace(i,1,sa);
} else if(s[i]=='C'){
if(a[i]==1)sa="12A";
else if(a[i]==2)sa="2";
else sa="3BC";
s.replace(i,1,sa);
}
}
for(int i=0;i<s.size();i++)
if(s[i]-'0'!=a[i])return 0;
if(s.size()!=n)return 0;
return 1;
}
int main()
{
ifstream f ("perle.in");
ofstream g ("perle.out");
f>>t;
while(t--){
f>>n;
for(int i=0;i<n;i++)f>>a[i];
g<<(rez("A")||rez("B")||rez("C"))<<'\n';
}
f.close ();
g.close ();
return 0;
}