#include <iostream>
#include <vector>
#include <queue>
#include <set>
// Заполняем вектор частот символов
// Сохраняем все символы алфавита в std::set
void get_data(std::vector< std::pair<char, double> > &alpha) {
std::vector<char> fr(256);
std::vector<char> stored(256, 0);
char c;
while (std::cin >> c) {
fr[c]++; // Вектор хранит количество символов с кодом c
// Добавить новую пару в том случае, если символа c нет в векторе
if (!stored[c]) {
alpha.push_back(std::make_pair(c, -1));
stored[c] = 1;
}
}
for (auto it : alpha)
it.second = 1.0 * fr[it.first] / alpha.size();
}
void Huffman(std::set<char> &alpha, std::vector<double> &freq) {
}
int main() {
std::vector< std::pair<char, double> > alpha;
get_data(alpha);
for (auto it : alpha)
std::cout << it.first << " " << it.second << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxzZXQ+CgovLyDQl9Cw0L/QvtC70L3Rj9C10Lwg0LLQtdC60YLQvtGAINGH0LDRgdGC0L7RgiDRgdC40LzQstC+0LvQvtCyCi8vINCh0L7RhdGA0LDQvdGP0LXQvCDQstGB0LUg0YHQuNC80LLQvtC70Ysg0LDQu9GE0LDQstC40YLQsCDQsiBzdGQ6OnNldAp2b2lkIGdldF9kYXRhKHN0ZDo6dmVjdG9yPCBzdGQ6OnBhaXI8Y2hhciwgZG91YmxlPiA+ICZhbHBoYSkgewoJc3RkOjp2ZWN0b3I8Y2hhcj4gZnIoMjU2KTsKCXN0ZDo6dmVjdG9yPGNoYXI+IHN0b3JlZCgyNTYsIDApOwoJY2hhciBjOwoKCXdoaWxlIChzdGQ6OmNpbiA+PiBjKSB7CgkJZnJbY10rKzsJLy8g0JLQtdC60YLQvtGAINGF0YDQsNC90LjRgiDQutC+0LvQuNGH0LXRgdGC0LLQviDRgdC40LzQstC+0LvQvtCyINGBINC60L7QtNC+0LwgYwoJCQkJCS8vINCU0L7QsdCw0LLQuNGC0Ywg0L3QvtCy0YPRjiDQv9Cw0YDRgyDQsiDRgtC+0Lwg0YHQu9GD0YfQsNC1LCDQtdGB0LvQuCDRgdC40LzQstC+0LvQsCBjINC90LXRgiDQsiDQstC10LrRgtC+0YDQtQoJCWlmICghc3RvcmVkW2NdKSB7CgkJCWFscGhhLnB1c2hfYmFjayhzdGQ6Om1ha2VfcGFpcihjLCAtMSkpOwoJCQlzdG9yZWRbY10gPSAxOwoJCX0KCX0KCWZvciAoYXV0byBpdCA6IGFscGhhKQoJCWl0LnNlY29uZCA9IDEuMCAqIGZyW2l0LmZpcnN0XSAvIGFscGhhLnNpemUoKTsKfQoKdm9pZCBIdWZmbWFuKHN0ZDo6c2V0PGNoYXI+ICZhbHBoYSwgc3RkOjp2ZWN0b3I8ZG91YmxlPiAmZnJlcSkgewoKfQoKaW50IG1haW4oKSB7CglzdGQ6OnZlY3Rvcjwgc3RkOjpwYWlyPGNoYXIsIGRvdWJsZT4gPiBhbHBoYTsKCglnZXRfZGF0YShhbHBoYSk7CgoJZm9yIChhdXRvIGl0IDogYWxwaGEpCgkJc3RkOjpjb3V0IDw8IGl0LmZpcnN0IDw8ICIgIiA8PCBpdC5zZWNvbmQgPDwgc3RkOjplbmRsOwp9