#include "text.h"
#include <vector>
#include <iostream>

//Ôóíêöèÿ îòîáðàæåíèÿ è ìàñøòàáèðîâàíèÿ ãèñòîãðàììû
void show_histogram_text(const std::vector<size_t>& bins){
    const size_t SCREEN_WIDTH = 80;
    const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 3;

    //Ïðîâåðêà íåîáõîäèìîñòè ìàñøàòáèðîâàíèÿ
	size_t max4scale = 0;
	for (size_t x : bins){
        if (x > max4scale){
            max4scale = x;
        }
	}
	if (max4scale > MAX_ASTERISK){
        for (size_t x : bins) {
            if (x >= 100){
                std::cout  << x << " | ";
            }
            else if (x >= 10){
                std::cout << " " << x << " | ";
            }
            else{
                std::cout << "  " << x << " | ";
            }
            size_t count = x;
            size_t height = MAX_ASTERISK * (static_cast<double>(count) / max4scale);
            for (size_t i = 0; i < height; i++) {
                std::cout << "*";
            }
            std::cout << "\n";
        }
	}
	else{
	//Âûâîä
	for (size_t x : bins) {
	    if (x >= 100){
            std::cout  << x << " | ";
	    }
	    else if (x >= 10){
            std::cout << " " << x << " | ";
	    }
	    else{
            std::cout << "  " << x << " | ";
	    }
		for (size_t i = 0; i < x; i++) {
			std::cout << "*";
		}
		std::cout << "\n";
    }
	}
	return;
}