#include <iostream>
#include <vector>
#include <text.h>
using namespace std;

const size_t SCREEN_WIDTH = 80;
const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1;

void
show_histogram(size_t bin_count, std::vector<size_t> bins, std::vector<size_t> procent){

size_t max_count = 0;
    for (size_t x: bins) {
        if (x > max_count) {
                max_count = x;
        }
    }

    if (max_count > MAX_ASTERISK) {
        for (size_t i = 0; i < bin_count ; i++) {
            size_t height = MAX_ASTERISK * (static_cast<double>(bins[i]) / max_count);
            if (bins[i] < 10) {
                cout << "  " << procent[i] << "%|";
            }
            else if (bins[i] >= 100) {
                cout << procent[i] << "%|";
            }

            else {
                cout << " " << procent[i] << "%|";
            }

            for (size_t i = 0; i < height; i++) {
                cout << "*";
            }
            cout << "\n";
        }
    }

    else {
        for (size_t i = 0; i < bin_count; i++) {

            if (procent[i] < 10) {
                cout << "  " << procent[i] << "%|";
            }
            else if (procent[i] < 100){
                cout << " " << procent[i] << "%|";
            }
            else if (procent[i] = 100){
                cout << procent[i] << "%|";
            }

            for (size_t r = 0; r < bins[i]; r++)
                cout << "*";
                cout << "\n";
            }

    }

}