Ask___
Advice
Главная
О сервисе
О нас
Правила пользования сайтом
Авторское право
Политика конфиденциальности
Ключ для indexNow
Скрипт от рекламы
Задать вопрос
Искать
Главная
Информатика
Ответы на вопрос
asker45967
25.02.2020
?>
Информатика онлайн мектеп
Информатика
Ответить
Ответы
ekkim310
25.02.2020
Код#include <iostream>#include <utility>#include <numeric>#include <vector>class Beast { int trigger; double aggression; double rage_aggression;public: Beast() = default; Beast(int trigger, double aggression, double range_aggression) : trigger(trigger), aggression(aggression), rage_aggression(range_aggression) { } Beast(const Beast&) = default; Beast(Beast&&) = default; Beast& operator=(const Beast&) = default; Beast& operator=(Beast&&) = default; [[nodiscard]] double calculate_aggression(unsigned long amount) const { return amount > trigger ? rage_aggression : aggression; } void ReadFrom (std::istream& is) { is >> aggression >> rage_aggression >> trigger; } void WriteTo(std::ostream &os) const { os << aggression << " " << rage_aggression << " " << trigger; }};std::istream& operator >>(std::istream &is, Beast &cls) { cls.ReadFrom(is); return is;}std::ostream& operator <<(std::ostream &os, const Beast &cls) { cls.WriteTo(os); return os;}class Cage { double durability; std::vector<Beast> container;public: explicit Cage(double durability, std::vector<Beast> container) : durability(durability), container(std::move(container)) { } Cage(const Cage&) = default; Cage(Cage&&) = default; Cage& operator=(const Cage&) = default; Cage& operator=(Cage&&) = default; [[nodiscard]] double calculate_aggressive() const { auto amount = container.size(); if (amount == 0) return 0; return std::accumulate(container.begin(), container.end(), 0.0, [amount](double total_aggressive, const Beast & beast){ return total_aggressive + beast.calculate_aggression(amount); }); } [[nodiscard]] bool is_it_normal() const { auto aggressive = calculate_aggressive(); return aggressive <= durability; } [[nodiscard]] int get_capacity() const { return container.size(); } [[nodiscard]] double get_durability() const { return durability; }};template <typename T>void subsetsUtil(std::vector<T>& A, std::vector<std::vector<T> >& res, std::vector<T>& subset, int index){ res.push_back(subset); for (int i = index; i < A.size(); i++) { // include the A[i] in subset. subset.push_back(A[i]); // move onto the next element. subsetsUtil(A, res, subset, i + 1); // exclude the A[i] from subset and triggers // backtracking. subset.pop_back(); }}template <typename T>std::vector<std::vector<T>> P(std::vector<T>& A){ std::vector<T> subset; std::vector<std::vector<T>> res; int index = 0; subsetsUtil(A, res, subset, index); return res;}int main () { int n, s; Beast noname{}; std::vector<Beast> set_of_beasts; std::cin >> n >> s; for (auto i = 0; i < n; ++i) { std::cin >> noname; set_of_beasts.push_back(noname); } auto selections = P(set_of_beasts); std::vector<Cage> variants; std::transform(selections.begin(), selections.end(), std::back_inserter(variants), [s](std::vector<Beast> &selection){ return Cage(s, selection); }); std::vector<Cage> true_variants; std::copy_if(variants.begin(), variants.end(), std::back_inserter(true_variants), [](Cage& x) {return x.is_it_normal();}); auto the_best_of_the_best_variant = *std::max_element(true_variants.begin(), true_variants.end(), [](Cage & s1, Cage & s2){ return s1.get_capacity() < s2.get_capacity(); }); std::cout << the_best_of_the_best_variant.get_capacity(); return 0;}
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Информатика онлайн мектеп
Ваше имя (никнейм)*
Email*
Комментарий*
Согласен с
политикой конфиденциальности
Отправить вопрос
Популярные вопросы в разделе
Дан двумерный массив. заменить значения всех элементов второй строки массива на число 5.
Автор: Игорь Андрей
Даны два натуральных числа. Выяснить, является ли хоть одно из них па- линдромом ("перевертышем"), т. е. таким числом, десятичная запись которо- го читается одинаково слева направо и справа налево....
Автор: Viktoriya
Считая, что каждый символ кодируется одним байтом, оцените информационный объем следующего высказывания блеза паскаля : красноречие - это живопись мысли
Автор: Olifirenko119
Какой основной источник информации используете и почему
Автор: zaravshan20134
Какая пословица зашифрована в блок-схеме? Семеро одного не ждутСемь вёрст до небес и все лесомОдним махом семерых убивахомЗа семь вёрст киселя хлебать
Автор: Larisa-Andrei
Визначте, які завдання можна розв’язувати за до табличного процесора. Поясніть потребу у вивченні особливостей роботи з табличним процесором для майбутньої профес
Автор: lidiya08083268
Каково назначение и принцип работы графических и консольных загрузчиков ос?
Автор: Ольга Сергей1822
Двоичное представление информации. Урок 1Отсортируй числа от 0 до 9 в порядкевозрастания. Некоторые числапредставлены в двоичном виде.19Т 10151 1001 111
Автор: zagadka27
2. Составь предложения с найденным словом: {Выход из лабиринта}
Автор: sorokinae
Исполнитель чертёжник перемещается на координатной плоскости, оставляя след в виде линии. чертёжник может выполнять команду сместиться на (a, b) (где a, b – целые числа), перемещающую чертёжника и...
Автор: fafina12586
Составьте программу, которая задаёт : "в каком году был основан город минск ( например , в 1067 г., в 993 г., либо в 1147 " в случае верного ответа программа должна сообщить "верно" , в противном с...
Автор: elmira01048775
( у исполнителя сигма две команды, которым присвоены номера: 1. прибавь 1 2. раздели на b (b-неизвестное натуральное число; b> =2) выполняя первую из них, сигма увеличивает число на экране на 1, ...
Автор: Kondratchik Vladimir
Умоляю постройте схему по следующему выражению: 1)(a & b) v (a⁻ & b⁻) 2)(a v b⁻) v (a⁻ v b)
Автор: karien87
Какие компоненты компьютера участвуют в формировании общего индекса производительности? в каком диапазоне изменяется индекс производительности windows?
Автор: Спивак
Что с информационной точки является целью?
Автор: Ильдар-Кугай
▲