hdu2708

/*
分析:
    这题……真的很蛋疼。。。
不能输出多余的空格,比如输入是:
        A
        B
        C
        D
那么输出是:* * * *\n,注意了,从E开始的空格就不能输
出了……否则就PE了。。。


                                                 2012-07-16                               
*/






#include"stdio.h"
#include"string.h"
int main()
{
	int hash[26];
	int max;
	int i,l;
	int f;
	char str[4][111];


	while(gets(str[0]))
	{
		memset(hash,0,sizeof(hash));
		for(i=1;i<4;i++)	gets(str[i]);


		for(i=0;i<4;i++)
		for(l=0;str[i][l];l++)
		{
			if('A'<=str[i][l]&&str[i][l]<='Z')	hash[str[i][l]-'A']++;
		}


		max=0;
		for(i=0;i<26;i++)	if(hash[i]>max)	max=hash[i];


		while(max)
		{
			if(hash[0]>=max)
			{	
				printf("*");
				f=0;
				for(i=1;i<26;i++)	if(hash[i]>=max)	{f=1;break;}
				if(f==0)	{printf("\n");max--;continue;}
			}
			else
			{
				f=0;
				for(i=1;i<26;i++)	if(hash[i]>=max)	{f=1;break;}
				if(f==0)	{printf("\n");max--;continue;}
				else		printf(" ");
			}


			for(i=1;i<26;i++)
			{
				if(hash[i]>=max)
				{
					printf(" *");
					f=0;
					for(l=i+1;l<26;l++)	if(hash[l]>=max)	{f=1;break;}
					if(f==0)	break;
				}
				else	printf("  ");
			}
			printf("\n");
			max--;
		}
		printf("A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\n");
	}
	return 0;
}


你可能感兴趣的:(hdu2708)