Cod sursa(job #650196)

Utilizator caftacnscmMiron Catalina-Iustina caftacnscm Data 17 decembrie 2011 15:38:06
Problema Perle Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.23 kb
#include<fstream.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
ifstream f("perle.in");
ofstream g("perle.out");
int v[12][999],n;
char aux[100],bla[100];
//***********************************************
void citire ()
{	int i,j;
	f>>n;
	for(i=1;i<=n;i++)
	{	f>>v[i][0];
		for(j=1;j<=v[i][0];j++)
			f>>v[i][j];
	}
}
//************************************************
void rez1(int i)
{	if(v[i][1]==1)
		if(v[i][2]==2)
			strcpy(bla,"12A");
		else strcpy(bla,"1A3AC");
	else
		if(v[i][1]==2)
			strcpy(bla,"2B");
		else
			if(v[i][1]==3)
				strcpy(bla,"3BC");
}
//*****************************************************
void rez2(int i,int j)
{	if(bla[j]=='A')
	{	if(v[i][j+1]==1)
		{	strcpy(aux,bla+j+1);
			strcpy(bla+j,bla+j+strlen(bla+j));
			strcat(bla+j,"1");
		}
		else
			if(v[i][j+1]==2)
			{	strcpy(aux,bla+j+1);
				strcpy(bla+j,bla+j+strlen(bla+j));
				strcat(bla+j,"2");
			}
			else // if(v[i][j+1]==3)
			{	strcpy(aux,bla+j+1);
				strcpy(bla+j,bla+j+strlen(bla+j));
				strcat(bla+j,"3");
			}
		strcat(bla+j,aux);
	}
	else
		if(bla[j]=='B')
		{	if(v[i][j+1]==2)
			{	strcpy(aux,bla+j+1);
				strcpy(bla+j,bla+j+strlen(bla+j));
				strcat(bla+j,"2B");
			}
			else
				if(v[i][j+1]==1)
				{	strcpy(aux,bla+j+1);
					strcpy(bla+j,bla+j+strlen(bla+j));
					strcat(bla+j,"1A3AC");
				}
			strcat(bla+j,aux);
		}
		else //if(bla[j]=='C')
		{	if(v[i][j+1]==2)
			{	strcpy(aux,bla+j+1);
				strcpy(bla+j,bla+j+strlen(bla+j));
				strcat(bla+j,"2");
			}
			else
				if(v[i][j+1]==1)
				{	strcpy(aux,bla+j+1);
					strcpy(bla+j,bla+j+strlen(bla+j));
					strcat(bla+j,"12A");
				}
				else //if(v[i][j+1]==3)
				{	strcpy(aux,bla+j+1);
					strcpy(bla+j,bla+j+strlen(bla+j));
					strcat(bla+j,"3BC");
				}
			strcat(bla+j,aux);
		}
}
int verificare(int k)
{	int i;
	int a;
	for(i=0;i<=v[i][0];i++)
	{
		if(bla[i]!=char(v[k][i+1]))
			return 0;
	}
	return 1;
}
//**************************************************************
int main ()
{	int i,j;
	citire();
	for(i=1;i<=n;i++)
	{	rez1(i);
		for(j=0;j<=strlen(bla)-1;j++)
			if(isalpha(bla[j]))
				rez2(i,j);
		if(verificare(i)==0)
			g<<"0";
		else
			g<<"1";
	}


return 0;
}