View Code of Problem 11

#include<stdio.h>
#include<string.h>
main()
{
	int t,n,i,k=1,m;
	char str[2000];
	int lx,rx,ly,ry,lz,rz;
	int sx,sy,sz;
	while(1)
	{
		lx=rx=ly=ry=lz=rz=0;
		scanf("%d",&t);
		getchar();
		if(t==0)break;
		else{
			m=t;
			while(m-->0)
			{
				lx=rx=ly=ry=lz=rz=0;
				gets(str);
				n=strlen(str);
				for(i=0;i<n;i++)
				{
					if(str[i]=='X')
					{
						lx+=str[i-2]-48;
						rx=str[i+2]-48;
					}
					else if(str[i]=='Y')
					{
						ly+=str[i-2]-48;
						ry=str[i+2]-48;
					}				
					else if(str[i]=='Z')
					{
						lz+=str[i-2]-48;
						rz=str[i+2]-48;
					}
				}
				if(m==t-1)printf("Case #%d:\n",k++);
				if(rx!=0&&rx!=1&&lx!=0)
					printf("%d * X ^ %d",lx*rx,rx-1);
				else if(lx!=0)
				{
					if(rx==1||rx==0)
					printf("%d",lx);
				}
				if(lx!=0)
				{
					if(ry!=0&&ry!=1&&ly!=0)
						printf(" + %d * Y ^ %d",ly*ry,ry-1);
					else if(ly!=0)
					{
						if(ry==1||ry==0)
						printf(" + %d",ly);
					}
				}
				else
				{
					if(ry!=0&&ry!=1&&ly!=0)
						printf("%d * Y ^ %d",ly*ry,ry-1);
					else if(ly!=0)
					{
						if(ry==1||ry==0)
						printf("%d",ly);
					}
				}
				if(lx!=0||ly!=0)
				{
					if(rz!=0&&rz!=1&&lz!=0)
						printf(" + %d * Z ^ %d",lz*rz,rz-1);
					else if(lz!=0)
					{
						if(rz==1||rz==0)
						printf(" + %d",lz); 
					}
				}
				else
				{
					if(rz!=0&&rz!=1&&lz!=0)
						printf(" %d * Z ^ %d",lz*rz,rz-1);
					else if(lz!=0)
					{
						if(rz==1||rz==0)
						printf(" %d",lz); 
					}
				}
				printf("\n");
			}
		}
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 11