/*
Problema "What's Cryptanalysis?"
de la pagina UVa Online Judge
Resuelto por Esteban Arango Medina
Marzo 2007
*/
#include <iostream>
#include <string>
#include <stdio.h>
#include <conio.h>
using namespace std;
void cryptanalysis(int numero);
void organizar();
typedef struct Tletras
{
char letraM;
char letram;
int veces;
};
struct Tletras letras [26];
void cryptanalysis(int numero){
char txt[100];
txt[0]=getchar();
for(int i=0; i<numero; i++){
cout<<"Ingrese la frase: "<<endl;
for(int n=0;(txt[n]=getchar()) != '\n';++n){
for(int i=0;i<26;i++){
if(txt[n]==letras[i].letraM || txt[n]==letras[i].letram){
letras[i].veces = letras[i].veces + 1;
i=i+26;
}
}
}
}
}
void organizar(){
int TAM=26;
struct Tletras temp;
for (int i=1; i<TAM; i++){
for (int j=0; j<TAM - 1; j++){
if (letras[j].veces < letras[j+1].veces){
temp = letras[j];
letras[j] = letras[j+1];
letras[j+1] = temp;
}
}
}
}
int main(int argc, char *argv[]){
int numero=0;
for (int i = 0; i<26;i++){
letras[i].letraM = (char)('A' + i);
letras[i].letram = (char)('a' + i);
letras[i].veces = 0;
}
cout<<"Ingrese el numero de frases: ";
cin>>numero;
cryptanalysis(numero);
organizar();
for (int i = 0; i<26;i++){
if(letras[i].veces != 0){
cout<<letras[i].letraM<<" "<<letras[i].veces<<endl;
}
}
getch();
return 0;
}