1. 程式人生 > 其它 >poj 2136(水題)

poj 2136(水題)

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
    int i,j,col,data[30],ans[30][305],pos[305];
    char a[4][100];
    memset(data,0,sizeof data);
    for(i=0;i<4;i++){
        gets(a[i]);
        for(j=0;j<strlen(a[i]);j++){
            if(a[i][j]>='
A'&&a[i][j]<='Z'){ data[a[i][j]-'A']++; } } } col = 0; for(i=0;i<26;i++){ if(data[i]>col){ col = data[i]; } } for(j=1;j<=col;j++){ for(i=0;i<26;i++){ if(data[i]>=j){ ans[i][j]
= 1; } else{ ans[i][j] = -1; } } } for(j=col;j>=1;j--){ for(i=26;i>=0;i--){ if(data[i]>=j){ pos[j] = i; break; } } } for(j=col;j>=1;j--){
for(i=0;i<26;i++){ if(i<pos[j]){ if(ans[i][j]==1){ printf("* "); } else if(ans[i][j]==-1){ printf(" "); } } else if(i==pos[j]){ printf("*"); printf("\n"); break; } } } for(i=0;i<25;i++){ printf("%c ",'A'+i); } printf("Z\n"); return 0; }