Vertical Histogram HDU - 2708 (字串)
//以後要注意陣列多開大一點,,,,,本題主要在於輸出格式
#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <stdio.h>using namespace std;
char map[80][52];
int list[26];int main()
{
string str;
while(getline(cin, str))
{
memset(list, 0, sizeof(list));
memset(map, ' ', sizeof(map));
for(int i = 0; i < str.length(); i++)
if(str[i] >= 'A' && str[i] <= 'Z')
list[str[i]-'A']++;
for(int i = 0; i < 3; i++)
{
getline(cin, str);
for(int j = 0; j < str.length(); j++)
if(str[j] >= 'A' && str[j] <= 'Z')
list[str[j]-'A']++;
}
int tmp = 0;
for(int i = 0; i < 26; i++)
tmp = max(tmp, list[i]);
int id = 0;
for(int i = 0; i < 51; i++)
{
if(i % 2)
continue;
for(int k = tmp-list[id]; k < tmp; k++)
map[k][2*id] = '*';
id++;
}
for(int i = 0; i < tmp; i++)
for(int j = 50; j >= 0; j--)
{
if(map[i][j] == '*')
{
map[i][j+1] = '\0';
break;
}
}
for(int i = 0; i < tmp; i++)
printf("%s\n", map[i]);
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;
}