Pagini recente » Cod sursa (job #730070) | Cod sursa (job #1713525) | Cod sursa (job #2020749) | Cod sursa (job #2009941) | Cod sursa (job #941520)
Cod sursa(job #941520)
#include <fstream>
#include <cstdio>
using namespace std;
ifstream f("perle.in");
ofstream g("perle.out");
int B(int p),C(int p);
int m,n,aux[10010];
int main()
{
bool ok=true; //debugg mode
f>>n;
if(!ok) g<<'\n';
for(int i=0;i<n;i++)
{
f>>m;
if(m==1)
{
f>>*aux;
if(ok)g<<1; else {g<<'M';}
}
else
{
for(int j=0;j<m;j++)
f>>aux[j];
if(*aux==2)
{
if(B(1)>=m)
if(ok) g<<1; else {g<<"BB"<<B(0)<<' ';}
else
if(ok) g<<0; else {g<<"01";}
}
else
{
if(B(0)>=m)
if(ok) g<<1; else {g<<"B"<<B(0)<<' ';}
else if(C(0)>=m)
if(ok) g<<1; else {g<<"C"<<C(0)<<' ';}
else
if(ok) g<<0; else {g<<"02";}
}
}
g<<'\n';
}
f.close();
g.close();
return 0;
}
int B(int p)
{
if(p>m) return 0;
if(aux[p]==2)
{
p++;
return B(p);
}
else if(aux[p]==1&&aux[p+2]==3)
{
p+=4;
return C(p);
}
return 0;
}
int C(int p)
{
if(p>=m) return 0;
if(aux[p]==2)
{
return p+1;
}
else if(aux[p]==3)
{
p++;
return C(B(p));
}
else if(aux[p]==1&&aux[p+1]==2)
return p+3;
return 0;
}