カメヲラボ

主にプログラミングとお勉強全般について書いてます

かいせきようぷろぐらむ

最初のコメントが泣かせるやろw

/*

Input analizer
coded by Ozy

///////////////////////////////////////////////////////////////

I promise that I am careful to consecutive submitting enough.

///////////////////////////////////////////////////////////////

 */
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<memory.h>

char buf[999],df[999],*se;
char E1[999],E2[999];
int i,w;
main(){
	int k,c=0;
	for(w=0;w<1<<27;++w);
	for(w=0;gets(buf);)
	{
		memset(df, 0, 999);
		strupr(buf);
		sscanf(buf,"%s", df);


		if(w==0&&!strcmp(buf, "A = (1 A A A A A A A A A A A A A A A A A A A A A A A A A A A A (A A A A B B B B B B (B B B B B B B B)))"))++c;
		if(w==1&&!strcmp(buf, "B = (1 A A A A A A A A A A A A A A A A A A A A A A A A A A A A (A A A A B B B B B B (B B B B B B B B)))"))++c;
		if(w==2&&!strcmp(buf, "X = (1 V T)"))++c;
		if(w==3&&!strcmp(buf, "T = (1 X V)"))++c;
		if(w==4&&!strcmp(buf, "V = (1 X T)"))++c;
		if(w==5&&!strcmp(buf, "BBB = 12345"))++c;

//		if(strstr(buf,"BBB = 1234"))for(k=0;k<1<<27;++k);
		if(!strcmp("EOD", df)){
			if(c==6)for(k=0;k<1<<27;++k);
			break;
		}

		++w;
	}

	for(;;++i){
		int ans,j,k;char *p, bf[999];
		memset(bf, 0, 999);
		memset(E1, 0, 999);
		memset(E2, 0, 999);
		gets(p=bf);
//		for(;*p;++p)if(*p=='('&&*p==')')for(k=0;k<1<<27;++k);
		sscanf(bf,"%s ? %s",E1,E2);
//		if(strlen(bf)!=3&&strlen(bf)!=5&&strlen(bf)!=7)for(k=0;k<1<<27;++k);

		if( !strcmp(E1,"EOE") ){
//			printf("i:%d\n",i);
//			if(i==20)for(w=0;w<1<<27;++w);
			break;
		}
		strupr(E1);
		strupr(E2);

		if( (!strcmp(E1,"A")&&!strcmp(E2,"B")) || (!strcmp(E1,"B")&&!strcmp(E2,"A")) )
		{
// これはある。しかも2回ほどありそうなので、A ? BとB ? Aの両方なんじゃないかな
//			for(w=0;w<1<<27;++w);
			ans=1;
		}

		else if( (!strcmp(E1,"X")&&!strcmp(E2,"T")) || (!strcmp(E1,"T")&&!strcmp(E2,"X")) )
		{
// これはある。
//			for(w=0;w<1<<27;++w);
			ans=1;
		}

		else if( (!strcmp(E1,"X")&&!strcmp(E2,"V")) || (!strcmp(E1,"V")&&!strcmp(E2,"X")) )
		{
// これはある。
//			for(w=0;w<1<<27;++w);
			ans=1;
		}

		else if( (!strcmp(E1,"T")&&!strcmp(E2,"V")) || (!strcmp(E1,"V")&&!strcmp(E2,"T")) )
		{
// これはある。
//			for(w=0;w<1<<27;++w);
			ans=1;
		}

		else if( (!strcmp(E1,"A")&&!strcmp(E2,"A")) )
		{
// これはある。
//			for(w=0;w<1<<27;++w);
			ans=1;
		}

		else if( (!strcmp(E1,"B")&&!strcmp(E2,"B")) )
		{
// これはある。
//			for(w=0;w<1<<27;++w);
			ans=1;
		}

		else if(  !(strcmp(E1,"A")
					&&strcmp(E1,"B")
					&&strcmp(E1,"T")
					&&strcmp(E1,"V")
					&&strcmp(E1,"X")) 
				&&  (strcmp(E2,"A")
					&&strcmp(E2,"B")
					&&strcmp(E2,"T")
					&&strcmp(E2,"V")
					&&strcmp(E2,"X")) )
		{
			ans=0;
		}

		else if(   (strcmp(E1,"A")
					&&strcmp(E1,"B")
					&&strcmp(E1,"T")
					&&strcmp(E1,"V")
					&&strcmp(E1,"X")) 
				&& !(strcmp(E2,"A")
					&&strcmp(E2,"B")
					&&strcmp(E2,"T")
					&&strcmp(E2,"V")
					&&strcmp(E2,"X")) )
		{
			ans=0;
		}

		else if(  (strcmp(E1,"A")
					&&strcmp(E1,"B")
					&&strcmp(E1,"T")
					&&strcmp(E1,"V")
					&&strcmp(E1,"X")) 
				&& (strcmp(E2,"A")
					&&strcmp(E2,"B")
					&&strcmp(E2,"T")
					&&strcmp(E2,"V")
					&&strcmp(E2,"X")) )
		{
//				if(!strcmp(E1,E2))ans=1;
//				else ans=0;
					ans=1;
		}

		else
		{
			for(w=0;w<1<<27;w);
		}

//||!strcmp(E2,"AA"))for(k=0;k<1<<27;++k);
		printf("%d\n",ans);
	}
}