#include <vector>

std::vector<double> general_algorithm(const std::vector<double>& a, const std::vector<double>& b, const std::vector<double>& c, const std::vector<double>& g);
std::vector<double> special_algorithm(const std::vector<double>& g);
std::vector<double> optimal_algorithm_opt(const std::vector<double>& g);
std::vector<double> add_boundaries(const std::vector<double>& v);