#include <iostream>
#include <vector>
#include "histogram.h"
#include "svg.h"

using namespace std;

// Ñòðóêòóðà äëÿ õðàíåíèÿ âõîäíûõ äàííûõ
struct Input {
    vector<double> numbers;
    size_t bin_count{};
};

// Ôóíêöèÿ ââîäà äàííûõ
Input input_data() {
    Input in;
    int number_count;

    cin >> number_count;
    while (number_count < 1) {
        cin >> number_count;
    }

    cin >> in.bin_count;
    while (in.bin_count < 1) {
        cin >> in.bin_count;
    }

    in.numbers.resize(number_count);
    for (int i = 0; i < number_count; i++) {
        cin >> in.numbers[i];
    }

    return in;
}

// Ãëàâíàÿ ôóíêöèÿ
int main() {
    auto in = input_data(); // Ââîä äàííûõ
    auto bins = make_histogram(in.numbers, in.bin_count); // Ðàñ÷¸ò ãèñòîãðàììû
    show_histogram_svg(bins); // Âûâîä ãèñòîãðàììû â ôîðìàòå SVG
}