题目描述


DS 老师要买车了,但他现在很苦恼,因为他不知道选个什么样的吉祥车牌号码,为此,他专门召开了家庭会议,让大家提供认为吉祥的数字或字母,然后在买车的时候可以选择一个大家都满意的吉祥车牌号码。



湘潭目前的自选车牌号码的规则是: 1 )车牌号码前为地域标志“湘 C ”; 2 )车牌号码有 5 位,其中,第 1 、 4 、 5 位是数字(取值范围为 0 至 9 ),第 2 、 3 位是大写字母(取值范围为 A 至 Z )。



提供的内容要么是数字串,要么是字母串。数字串或字母串的长度均为 1 位或 2 位。注意: 1 )提供的数字串或字母串不会有相同的; 2 )长度为 2 的数字串或字母串在组成车牌号码时是不允许被其它字符隔开的。 3 )在组成车牌号码时,提供的吉祥数字或字母串不一定全部被使用,并允许重复使用。



请你根据提供的数字或字母串,编程求出可选车牌号码的方案总数。为了让大家理解题意,下面多举几个例子。



例 1 :提供的吉祥数字或字母组合为 2  6  88  DS 时,则车牌号码的组合形式为 xDSxx ,由于三个 x 均可取 2 或 6 ,而且第 2 、 3 个 x 位置上可选 88 ,故车牌号码的可选方案总共有 10 个。



例 2 : 2 6 8 DS 组成的车牌号码方案有 27 个。



例 3 : 2 6 88 DS 组成的车牌号码方案有 10 个。



例 4 : 2 6 88 D S 组成的车牌号码方案有 40 个。



例5:2 6 88 D S DS组成的车牌号码方案有40个。


输入


输入提供的各个吉祥数字串或字母串。



2 <=串的个数<= 10 ,每个串的串长为 1 或 2 。



串之间用一个空格隔开。


输出


只要是提供的吉祥数字串或字母串,都可以出现在车牌号码中(详细规则参考题目描述)。



统计可选车牌号码的方案总数,并输出之。


样例输入


2 6 88 D S


样例输出


40



#include<stdio.h>
#include<string.h>
int main()
{
	char a[50], g[50], h[50],y[50],z[50];
	int i,j,j1,k,k1,b,c,d,e,f,l,l1,n,s;
	while (gets(a))
	{
		b = 0; c = 0; d = 0; e = 0; f = 0; l = 0; l1 = 0; n = 0;
		for (k = 0,k1=0, j = 0,j1=0, i = 0; a[i] != '\0'; i++)
		{
			if (a[i] >= 'A'&&a[i] <= 'Z'&&a[i + 1] >= 'A'&&a[i + 1] <= 'Z') { g[j] = a[i]; g[j + 1] = a[i + 1]; j += 2; i = i + 1;   b++; }			//  记录两个连续的字母的个数
			else if (a[i] >= '0'&&a[i] <= '9'&&a[i + 1] >= '0'&&a[i + 1] <= '9') { y[j1] = a[i]; y[j1 + 1] = a[i + 1]; j1 +=2; i = i + 1; c++; }  //  记录两个连续的数字
			else if (a[i] >= 'A'&&a[i] <= 'Z')  { h[k] = a[i]; k++; d++;  }  //  记录单个字母的个数
			else if (a[i] >= '0'&&a[i] <= '9')  { z[k1] = a[i]; k1++; e++; }  //  记录单个数字的个数
		}
		g[j] = '\0'; h[k] = '\0'; y[j1] = '\0'; z[k1] = '\0';
		for (i = 0;g[i]!='\0';i+=2)
		{
			for (j = 0;h[j]!='\0'; j++)
			{
				if (h[j] == g[i]){ l = 1; break; }
			}
			if (l)
			{
				for (j = 0; h[j] != '\0'; j++)
				{
					if (h[j] == g[i + 1]){ f++; break; }
				}
			}

		}
		
		for (i = 0;y[i]!='\0'; i+= 2)
		{
			for (j = 0;z[j]!='\0'; j++)
			{
				if (z[j] == y[i]){ l1 = 1; break; }
			}
			if (l1)
			{
				for (j = 0;z[j]!='\0'; j++)
				{
					if (z[j] == y[i + 1]){ n++; break; }
				}
			}

		}

		
		s = e*(d*d-f+ b)*(e*e-n + c);
		//puts(a);
		printf("%d\n",s);

	}


	return 0;


}